Text Compare
Produced: 7/19/2015 9:50:29 AM
   
Mode:  All, With Context  
Left file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template03\0718-1345\valgrind-bug-11821-11822\sanity\coregrind\m_scheduler\scheduler.c  
Right file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template03\0718-1345\valgrind-bug-11821-11822\000000\coregrind\m_scheduler\scheduler.c  
1 typedef unsigned char UChar; = 1 typedef unsigned char UChar;
2 typedef signed char Char;   2 typedef signed char Char;
3 typedef char HChar;   3 typedef char HChar;
4 typedef unsigned short UShort;   4 typedef unsigned short UShort;
5 typedef short Short;   5 typedef short Short;
6 typedef unsigned int UInt;   6 typedef unsigned int UInt;
7 typedef int Int;   7 typedef int Int;
8 typedef unsigned long long ULong;   8 typedef unsigned long long ULong;
9 typedef long long Long;   9 typedef long long Long;
10 typedef UInt U128[4];   10 typedef UInt U128[4];
11 union __anonunion_V128_1 {   11 union __anonunion_V128_1 {
12    UChar w8[16] ;   12    UChar w8[16] ;
13    UShort w16[8] ;   13    UShort w16[8] ;
14    UInt w32[4] ;   14    UInt w32[4] ;
15    ULong w64[2] ;   15    ULong w64[2] ;
16 };   16 };
17 typedef union __anonunion_V128_1 V128;   17 typedef union __anonunion_V128_1 V128;
18 typedef float Float;   18 typedef float Float;
19 typedef double Double;   19 typedef double Double;
20 typedef unsigned char Bool;   20 typedef unsigned char Bool;
21 typedef UInt Addr32;   21 typedef UInt Addr32;
22 typedef ULong Addr64;   22 typedef ULong Addr64;
23 typedef unsigned long HWord;   23 typedef unsigned long HWord;
24 typedef __builtin_va_list __gnuc_va_list;   24 typedef __builtin_va_list __gnuc_va_list;
25 typedef __gnuc_va_list va_list;   25 typedef __gnuc_va_list va_list;
26 typedef unsigned long UWord;   26 typedef unsigned long UWord;
27 typedef long Word;   27 typedef long Word;
28 typedef UWord Addr;   28 typedef UWord Addr;
29 typedef UWord AddrH;   29 typedef UWord AddrH;
30 typedef UWord SizeT;   30 typedef UWord SizeT;
31 typedef Word SSizeT;   31 typedef Word SSizeT;
32 typedef Word PtrdiffT;   32 typedef Word PtrdiffT;
33 typedef Word OffT;   33 typedef Word OffT;
34 typedef Long Off64T;   34 typedef Long Off64T;
35 struct __anonstruct_UWordPair_2 {   35 struct __anonstruct_UWordPair_2 {
36    UWord uw1 ;   36    UWord uw1 ;
37    UWord uw2 ;   37    UWord uw2 ;
38 };   38 };
39 typedef struct __anonstruct_UWordPair_2 UWordPair;   39 typedef struct __anonstruct_UWordPair_2 UWordPair;
40 typedef UInt ThreadId;   40 typedef UInt ThreadId;
41 struct __anonstruct_SysRes_3 {   41 struct __anonstruct_SysRes_3 {
42    UWord _val ;   42    UWord _val ;
43    Bool _isError ;   43    Bool _isError ;
44 };   44 };
45 typedef struct __anonstruct_SysRes_3 SysRes;   45 typedef struct __anonstruct_SysRes_3 SysRes;
46 enum __anonenum_IRType_4 {   46 enum __anonenum_IRType_4 {
47     Ity_INVALID = 69632,   47     Ity_INVALID = 69632,
48     Ity_I1 = 69633,   48     Ity_I1 = 69633,
49     Ity_I8 = 69634,   49     Ity_I8 = 69634,
50     Ity_I16 = 69635,   50     Ity_I16 = 69635,
51     Ity_I32 = 69636,   51     Ity_I32 = 69636,
52     Ity_I64 = 69637,   52     Ity_I64 = 69637,
53     Ity_I128 = 69638,   53     Ity_I128 = 69638,
54     Ity_F32 = 69639,   54     Ity_F32 = 69639,
55     Ity_F64 = 69640,   55     Ity_F64 = 69640,
56     Ity_F128 = 69641,   56     Ity_F128 = 69641,
57     Ity_V128 = 69642   57     Ity_V128 = 69642
58 } ;   58 } ;
59 typedef enum __anonenum_IRType_4 IRType;   59 typedef enum __anonenum_IRType_4 IRType;
60 enum __anonenum_IREndness_5 {   60 enum __anonenum_IREndness_5 {
61     Iend_LE = 73728,   61     Iend_LE = 73728,
62     Iend_BE = 73729   62     Iend_BE = 73729
63 } ;   63 } ;
64 typedef enum __anonenum_IREndness_5 IREndness;   64 typedef enum __anonenum_IREndness_5 IREndness;
65 enum __anonenum_IRConstTag_6 {   65 enum __anonenum_IRConstTag_6 {
66     Ico_U1 = 77824,   66     Ico_U1 = 77824,
67     Ico_U8 = 77825,   67     Ico_U8 = 77825,
68     Ico_U16 = 77826,   68     Ico_U16 = 77826,
69     Ico_U32 = 77827,   69     Ico_U32 = 77827,
70     Ico_U64 = 77828,   70     Ico_U64 = 77828,
71     Ico_F32 = 77829,   71     Ico_F32 = 77829,
72     Ico_F32i = 77830,   72     Ico_F32i = 77830,
73     Ico_F64 = 77831,   73     Ico_F64 = 77831,
74     Ico_F64i = 77832,   74     Ico_F64i = 77832,
75     Ico_V128 = 77833   75     Ico_V128 = 77833
76 } ;   76 } ;
77 typedef enum __anonenum_IRConstTag_6 IRConstTag;   77 typedef enum __anonenum_IRConstTag_6 IRConstTag;
78 union __anonunion_Ico_7 {   78 union __anonunion_Ico_7 {
79    Bool U1 ;   79    Bool U1 ;
80    UChar U8 ;   80    UChar U8 ;
81    UShort U16 ;   81    UShort U16 ;
82    UInt U32 ;   82    UInt U32 ;
83    ULong U64 ;   83    ULong U64 ;
84    Float F32 ;   84    Float F32 ;
85    UInt F32i ;   85    UInt F32i ;
86    Double F64 ;   86    Double F64 ;
87    ULong F64i ;   87    ULong F64i ;
88    UShort V128 ;   88    UShort V128 ;
89 };   89 };
90 struct _IRConst {   90 struct _IRConst {
91    IRConstTag tag ;   91    IRConstTag tag ;
92    union __anonunion_Ico_7 Ico ;   92    union __anonunion_Ico_7 Ico ;
93 };   93 };
94 typedef struct _IRConst IRConst;   94 typedef struct _IRConst IRConst;
95 struct __anonstruct_IRCallee_8 {   95 struct __anonstruct_IRCallee_8 {
96    Int regparms ;   96    Int regparms ;
97    HChar *name ;   97    HChar *name ;
98    void *addr ;   98    void *addr ;
99    UInt mcx_mask ;   99    UInt mcx_mask ;
100 };   100 };
101 typedef struct __anonstruct_IRCallee_8 IRCallee;   101 typedef struct __anonstruct_IRCallee_8 IRCallee;
102 struct __anonstruct_IRRegArray_9 {   102 struct __anonstruct_IRRegArray_9 {
103    Int base ;   103    Int base ;
104    IRType elemTy ;   104    IRType elemTy ;
105    Int nElems ;   105    Int nElems ;
106 };   106 };
107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;   107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;
108 typedef UInt IRTemp;   108 typedef UInt IRTemp;
109 enum __anonenum_IROp_10 {   109 enum __anonenum_IROp_10 {
110     Iop_INVALID = 81920,   110     Iop_INVALID = 81920,
111     Iop_Add8 = 81921,   111     Iop_Add8 = 81921,
112     Iop_Add16 = 81922,   112     Iop_Add16 = 81922,
113     Iop_Add32 = 81923,   113     Iop_Add32 = 81923,
114     Iop_Add64 = 81924,   114     Iop_Add64 = 81924,
115     Iop_Sub8 = 81925,   115     Iop_Sub8 = 81925,
116     Iop_Sub16 = 81926,   116     Iop_Sub16 = 81926,
117     Iop_Sub32 = 81927,   117     Iop_Sub32 = 81927,
118     Iop_Sub64 = 81928,   118     Iop_Sub64 = 81928,
119     Iop_Mul8 = 81929,   119     Iop_Mul8 = 81929,
120     Iop_Mul16 = 81930,   120     Iop_Mul16 = 81930,
121     Iop_Mul32 = 81931,   121     Iop_Mul32 = 81931,
122     Iop_Mul64 = 81932,   122     Iop_Mul64 = 81932,
123     Iop_Or8 = 81933,   123     Iop_Or8 = 81933,
124     Iop_Or16 = 81934,   124     Iop_Or16 = 81934,
125     Iop_Or32 = 81935,   125     Iop_Or32 = 81935,
126     Iop_Or64 = 81936,   126     Iop_Or64 = 81936,
127     Iop_And8 = 81937,   127     Iop_And8 = 81937,
128     Iop_And16 = 81938,   128     Iop_And16 = 81938,
129     Iop_And32 = 81939,   129     Iop_And32 = 81939,
130     Iop_And64 = 81940,   130     Iop_And64 = 81940,
131     Iop_Xor8 = 81941,   131     Iop_Xor8 = 81941,
132     Iop_Xor16 = 81942,   132     Iop_Xor16 = 81942,
133     Iop_Xor32 = 81943,   133     Iop_Xor32 = 81943,
134     Iop_Xor64 = 81944,   134     Iop_Xor64 = 81944,
135     Iop_Shl8 = 81945,   135     Iop_Shl8 = 81945,
136     Iop_Shl16 = 81946,   136     Iop_Shl16 = 81946,
137     Iop_Shl32 = 81947,   137     Iop_Shl32 = 81947,
138     Iop_Shl64 = 81948,   138     Iop_Shl64 = 81948,
139     Iop_Shr8 = 81949,   139     Iop_Shr8 = 81949,
140     Iop_Shr16 = 81950,   140     Iop_Shr16 = 81950,
141     Iop_Shr32 = 81951,   141     Iop_Shr32 = 81951,
142     Iop_Shr64 = 81952,   142     Iop_Shr64 = 81952,
143     Iop_Sar8 = 81953,   143     Iop_Sar8 = 81953,
144     Iop_Sar16 = 81954,   144     Iop_Sar16 = 81954,
145     Iop_Sar32 = 81955,   145     Iop_Sar32 = 81955,
146     Iop_Sar64 = 81956,   146     Iop_Sar64 = 81956,
147     Iop_CmpEQ8 = 81957,   147     Iop_CmpEQ8 = 81957,
148     Iop_CmpEQ16 = 81958,   148     Iop_CmpEQ16 = 81958,
149     Iop_CmpEQ32 = 81959,   149     Iop_CmpEQ32 = 81959,
150     Iop_CmpEQ64 = 81960,   150     Iop_CmpEQ64 = 81960,
151     Iop_CmpNE8 = 81961,   151     Iop_CmpNE8 = 81961,
152     Iop_CmpNE16 = 81962,   152     Iop_CmpNE16 = 81962,
153     Iop_CmpNE32 = 81963,   153     Iop_CmpNE32 = 81963,
154     Iop_CmpNE64 = 81964,   154     Iop_CmpNE64 = 81964,
155     Iop_Not8 = 81965,   155     Iop_Not8 = 81965,
156     Iop_Not16 = 81966,   156     Iop_Not16 = 81966,
157     Iop_Not32 = 81967,   157     Iop_Not32 = 81967,
158     Iop_Not64 = 81968,   158     Iop_Not64 = 81968,
159     Iop_CasCmpEQ8 = 81969,   159     Iop_CasCmpEQ8 = 81969,
160     Iop_CasCmpEQ16 = 81970,   160     Iop_CasCmpEQ16 = 81970,
161     Iop_CasCmpEQ32 = 81971,   161     Iop_CasCmpEQ32 = 81971,
162     Iop_CasCmpEQ64 = 81972,   162     Iop_CasCmpEQ64 = 81972,
163     Iop_CasCmpNE8 = 81973,   163     Iop_CasCmpNE8 = 81973,
164     Iop_CasCmpNE16 = 81974,   164     Iop_CasCmpNE16 = 81974,
165     Iop_CasCmpNE32 = 81975,   165     Iop_CasCmpNE32 = 81975,
166     Iop_CasCmpNE64 = 81976,   166     Iop_CasCmpNE64 = 81976,
167     Iop_MullS8 = 81977,   167     Iop_MullS8 = 81977,
168     Iop_MullS16 = 81978,   168     Iop_MullS16 = 81978,
169     Iop_MullS32 = 81979,   169     Iop_MullS32 = 81979,
170     Iop_MullS64 = 81980,   170     Iop_MullS64 = 81980,
171     Iop_MullU8 = 81981,   171     Iop_MullU8 = 81981,
172     Iop_MullU16 = 81982,   172     Iop_MullU16 = 81982,
173     Iop_MullU32 = 81983,   173     Iop_MullU32 = 81983,
174     Iop_MullU64 = 81984,   174     Iop_MullU64 = 81984,
175     Iop_Clz64 = 81985,   175     Iop_Clz64 = 81985,
176     Iop_Clz32 = 81986,   176     Iop_Clz32 = 81986,
177     Iop_Ctz64 = 81987,   177     Iop_Ctz64 = 81987,
178     Iop_Ctz32 = 81988,   178     Iop_Ctz32 = 81988,
179     Iop_CmpLT32S = 81989,   179     Iop_CmpLT32S = 81989,
180     Iop_CmpLT64S = 81990,   180     Iop_CmpLT64S = 81990,
181     Iop_CmpLE32S = 81991,   181     Iop_CmpLE32S = 81991,
182     Iop_CmpLE64S = 81992,   182     Iop_CmpLE64S = 81992,
183     Iop_CmpLT32U = 81993,   183     Iop_CmpLT32U = 81993,
184     Iop_CmpLT64U = 81994,   184     Iop_CmpLT64U = 81994,
185     Iop_CmpLE32U = 81995,   185     Iop_CmpLE32U = 81995,
186     Iop_CmpLE64U = 81996,   186     Iop_CmpLE64U = 81996,
187     Iop_CmpNEZ8 = 81997,   187     Iop_CmpNEZ8 = 81997,
188     Iop_CmpNEZ16 = 81998,   188     Iop_CmpNEZ16 = 81998,
189     Iop_CmpNEZ32 = 81999,   189     Iop_CmpNEZ32 = 81999,
190     Iop_CmpNEZ64 = 82000,   190     Iop_CmpNEZ64 = 82000,
191     Iop_CmpwNEZ32 = 82001,   191     Iop_CmpwNEZ32 = 82001,
192     Iop_CmpwNEZ64 = 82002,   192     Iop_CmpwNEZ64 = 82002,
193     Iop_Left8 = 82003,   193     Iop_Left8 = 82003,
194     Iop_Left16 = 82004,   194     Iop_Left16 = 82004,
195     Iop_Left32 = 82005,   195     Iop_Left32 = 82005,
196     Iop_Left64 = 82006,   196     Iop_Left64 = 82006,
197     Iop_Max32U = 82007,   197     Iop_Max32U = 82007,
198     Iop_CmpORD32U = 82008,   198     Iop_CmpORD32U = 82008,
199     Iop_CmpORD64U = 82009,   199     Iop_CmpORD64U = 82009,
200     Iop_CmpORD32S = 82010,   200     Iop_CmpORD32S = 82010,
201     Iop_CmpORD64S = 82011,   201     Iop_CmpORD64S = 82011,
202     Iop_DivU32 = 82012,   202     Iop_DivU32 = 82012,
203     Iop_DivS32 = 82013,   203     Iop_DivS32 = 82013,
204     Iop_DivU64 = 82014,   204     Iop_DivU64 = 82014,
205     Iop_DivS64 = 82015,   205     Iop_DivS64 = 82015,
206     Iop_DivModU64to32 = 82016,   206     Iop_DivModU64to32 = 82016,
207     Iop_DivModS64to32 = 82017,   207     Iop_DivModS64to32 = 82017,
208     Iop_DivModU128to64 = 82018,   208     Iop_DivModU128to64 = 82018,
209     Iop_DivModS128to64 = 82019,   209     Iop_DivModS128to64 = 82019,
210     Iop_DivModS64to64 = 82020,   210     Iop_DivModS64to64 = 82020,
211     Iop_8Uto16 = 82021,   211     Iop_8Uto16 = 82021,
212     Iop_8Uto32 = 82022,   212     Iop_8Uto32 = 82022,
213     Iop_8Uto64 = 82023,   213     Iop_8Uto64 = 82023,
214     Iop_16Uto32 = 82024,   214     Iop_16Uto32 = 82024,
215     Iop_16Uto64 = 82025,   215     Iop_16Uto64 = 82025,
216     Iop_32Uto64 = 82026,   216     Iop_32Uto64 = 82026,
217     Iop_8Sto16 = 82027,   217     Iop_8Sto16 = 82027,
218     Iop_8Sto32 = 82028,   218     Iop_8Sto32 = 82028,
219     Iop_8Sto64 = 82029,   219     Iop_8Sto64 = 82029,
220     Iop_16Sto32 = 82030,   220     Iop_16Sto32 = 82030,
221     Iop_16Sto64 = 82031,   221     Iop_16Sto64 = 82031,
222     Iop_32Sto64 = 82032,   222     Iop_32Sto64 = 82032,
223     Iop_64to8 = 82033,   223     Iop_64to8 = 82033,
224     Iop_32to8 = 82034,   224     Iop_32to8 = 82034,
225     Iop_64to16 = 82035,   225     Iop_64to16 = 82035,
226     Iop_16to8 = 82036,   226     Iop_16to8 = 82036,
227     Iop_16HIto8 = 82037,   227     Iop_16HIto8 = 82037,
228     Iop_8HLto16 = 82038,   228     Iop_8HLto16 = 82038,
229     Iop_32to16 = 82039,   229     Iop_32to16 = 82039,
230     Iop_32HIto16 = 82040,   230     Iop_32HIto16 = 82040,
231     Iop_16HLto32 = 82041,   231     Iop_16HLto32 = 82041,
232     Iop_64to32 = 82042,   232     Iop_64to32 = 82042,
233     Iop_64HIto32 = 82043,   233     Iop_64HIto32 = 82043,
234     Iop_32HLto64 = 82044,   234     Iop_32HLto64 = 82044,
235     Iop_128to64 = 82045,   235     Iop_128to64 = 82045,
236     Iop_128HIto64 = 82046,   236     Iop_128HIto64 = 82046,
237     Iop_64HLto128 = 82047,   237     Iop_64HLto128 = 82047,
238     Iop_Not1 = 82048,   238     Iop_Not1 = 82048,
239     Iop_32to1 = 82049,   239     Iop_32to1 = 82049,
240     Iop_64to1 = 82050,   240     Iop_64to1 = 82050,
241     Iop_1Uto8 = 82051,   241     Iop_1Uto8 = 82051,
242     Iop_1Uto32 = 82052,   242     Iop_1Uto32 = 82052,
243     Iop_1Uto64 = 82053,   243     Iop_1Uto64 = 82053,
244     Iop_1Sto8 = 82054,   244     Iop_1Sto8 = 82054,
245     Iop_1Sto16 = 82055,   245     Iop_1Sto16 = 82055,
246     Iop_1Sto32 = 82056,   246     Iop_1Sto32 = 82056,
247     Iop_1Sto64 = 82057,   247     Iop_1Sto64 = 82057,
248     Iop_AddF64 = 82058,   248     Iop_AddF64 = 82058,
249     Iop_SubF64 = 82059,   249     Iop_SubF64 = 82059,
250     Iop_MulF64 = 82060,   250     Iop_MulF64 = 82060,
251     Iop_DivF64 = 82061,   251     Iop_DivF64 = 82061,
252     Iop_AddF32 = 82062,   252     Iop_AddF32 = 82062,
253     Iop_SubF32 = 82063,   253     Iop_SubF32 = 82063,
254     Iop_MulF32 = 82064,   254     Iop_MulF32 = 82064,
255     Iop_DivF32 = 82065,   255     Iop_DivF32 = 82065,
256     Iop_AddF64r32 = 82066,   256     Iop_AddF64r32 = 82066,
257     Iop_SubF64r32 = 82067,   257     Iop_SubF64r32 = 82067,
258     Iop_MulF64r32 = 82068,   258     Iop_MulF64r32 = 82068,
259     Iop_DivF64r32 = 82069,   259     Iop_DivF64r32 = 82069,
260     Iop_NegF64 = 82070,   260     Iop_NegF64 = 82070,
261     Iop_AbsF64 = 82071,   261     Iop_AbsF64 = 82071,
262     Iop_NegF32 = 82072,   262     Iop_NegF32 = 82072,
263     Iop_AbsF32 = 82073,   263     Iop_AbsF32 = 82073,
264     Iop_SqrtF64 = 82074,   264     Iop_SqrtF64 = 82074,
265     Iop_SqrtF64r32 = 82075,   265     Iop_SqrtF64r32 = 82075,
266     Iop_SqrtF32 = 82076,   266     Iop_SqrtF32 = 82076,
267     Iop_CmpF64 = 82077,   267     Iop_CmpF64 = 82077,
268     Iop_CmpF32 = 82078,   268     Iop_CmpF32 = 82078,
269     Iop_CmpF128 = 82079,   269     Iop_CmpF128 = 82079,
270     Iop_F64toI16S = 82080,   270     Iop_F64toI16S = 82080,
271     Iop_F64toI32S = 82081,   271     Iop_F64toI32S = 82081,
272     Iop_F64toI64S = 82082,   272     Iop_F64toI64S = 82082,
273     Iop_F64toI32U = 82083,   273     Iop_F64toI32U = 82083,
274     Iop_I16StoF64 = 82084,   274     Iop_I16StoF64 = 82084,
275     Iop_I32StoF64 = 82085,   275     Iop_I32StoF64 = 82085,
276     Iop_I64StoF64 = 82086,   276     Iop_I64StoF64 = 82086,
277     Iop_I64UtoF64 = 82087,   277     Iop_I64UtoF64 = 82087,
278     Iop_I64UtoF32 = 82088,   278     Iop_I64UtoF32 = 82088,
279     Iop_I32UtoF64 = 82089,   279     Iop_I32UtoF64 = 82089,
280     Iop_F32toI16S = 82090,   280     Iop_F32toI16S = 82090,
281     Iop_F32toI32S = 82091,   281     Iop_F32toI32S = 82091,
282     Iop_F32toI64S = 82092,   282     Iop_F32toI64S = 82092,
283     Iop_I16StoF32 = 82093,   283     Iop_I16StoF32 = 82093,
284     Iop_I32StoF32 = 82094,   284     Iop_I32StoF32 = 82094,
285     Iop_I64StoF32 = 82095,   285     Iop_I64StoF32 = 82095,
286     Iop_F32toF64 = 82096,   286     Iop_F32toF64 = 82096,
287     Iop_F64toF32 = 82097,   287     Iop_F64toF32 = 82097,
288     Iop_ReinterpF64asI64 = 82098,   288     Iop_ReinterpF64asI64 = 82098,
289     Iop_ReinterpI64asF64 = 82099,   289     Iop_ReinterpI64asF64 = 82099,
290     Iop_ReinterpF32asI32 = 82100,   290     Iop_ReinterpF32asI32 = 82100,
291     Iop_ReinterpI32asF32 = 82101,   291     Iop_ReinterpI32asF32 = 82101,
292     Iop_F64HLtoF128 = 82102,   292     Iop_F64HLtoF128 = 82102,
293     Iop_F128HItoF64 = 82103,   293     Iop_F128HItoF64 = 82103,
294     Iop_F128LOtoF64 = 82104,   294     Iop_F128LOtoF64 = 82104,
295     Iop_AddF128 = 82105,   295     Iop_AddF128 = 82105,
296     Iop_SubF128 = 82106,   296     Iop_SubF128 = 82106,
297     Iop_MulF128 = 82107,   297     Iop_MulF128 = 82107,
298     Iop_DivF128 = 82108,   298     Iop_DivF128 = 82108,
299     Iop_NegF128 = 82109,   299     Iop_NegF128 = 82109,
300     Iop_AbsF128 = 82110,   300     Iop_AbsF128 = 82110,
301     Iop_SqrtF128 = 82111,   301     Iop_SqrtF128 = 82111,
302     Iop_I32StoF128 = 82112,   302     Iop_I32StoF128 = 82112,
303     Iop_I64StoF128 = 82113,   303     Iop_I64StoF128 = 82113,
304     Iop_F32toF128 = 82114,   304     Iop_F32toF128 = 82114,
305     Iop_F64toF128 = 82115,   305     Iop_F64toF128 = 82115,
306     Iop_F128toI32S = 82116,   306     Iop_F128toI32S = 82116,
307     Iop_F128toI64S = 82117,   307     Iop_F128toI64S = 82117,
308     Iop_F128toF64 = 82118,   308     Iop_F128toF64 = 82118,
309     Iop_F128toF32 = 82119,   309     Iop_F128toF32 = 82119,
310     Iop_AtanF64 = 82120,   310     Iop_AtanF64 = 82120,
311     Iop_Yl2xF64 = 82121,   311     Iop_Yl2xF64 = 82121,
312     Iop_Yl2xp1F64 = 82122,   312     Iop_Yl2xp1F64 = 82122,
313     Iop_PRemF64 = 82123,   313     Iop_PRemF64 = 82123,
314     Iop_PRemC3210F64 = 82124,   314     Iop_PRemC3210F64 = 82124,
315     Iop_PRem1F64 = 82125,   315     Iop_PRem1F64 = 82125,
316     Iop_PRem1C3210F64 = 82126,   316     Iop_PRem1C3210F64 = 82126,
317     Iop_ScaleF64 = 82127,   317     Iop_ScaleF64 = 82127,
318     Iop_SinF64 = 82128,   318     Iop_SinF64 = 82128,
319     Iop_CosF64 = 82129,   319     Iop_CosF64 = 82129,
320     Iop_TanF64 = 82130,   320     Iop_TanF64 = 82130,
321     Iop_2xm1F64 = 82131,   321     Iop_2xm1F64 = 82131,
322     Iop_RoundF64toInt = 82132,   322     Iop_RoundF64toInt = 82132,
323     Iop_RoundF32toInt = 82133,   323     Iop_RoundF32toInt = 82133,
324     Iop_MAddF32 = 82134,   324     Iop_MAddF32 = 82134,
325     Iop_MSubF32 = 82135,   325     Iop_MSubF32 = 82135,
326     Iop_MAddF64 = 82136,   326     Iop_MAddF64 = 82136,
327     Iop_MSubF64 = 82137,   327     Iop_MSubF64 = 82137,
328     Iop_MAddF64r32 = 82138,   328     Iop_MAddF64r32 = 82138,
329     Iop_MSubF64r32 = 82139,   329     Iop_MSubF64r32 = 82139,
330     Iop_Est5FRSqrt = 82140,   330     Iop_Est5FRSqrt = 82140,
331     Iop_RoundF64toF64_NEAREST = 82141,   331     Iop_RoundF64toF64_NEAREST = 82141,
332     Iop_RoundF64toF64_NegINF = 82142,   332     Iop_RoundF64toF64_NegINF = 82142,
333     Iop_RoundF64toF64_PosINF = 82143,   333     Iop_RoundF64toF64_PosINF = 82143,
334     Iop_RoundF64toF64_ZERO = 82144,   334     Iop_RoundF64toF64_ZERO = 82144,
335     Iop_TruncF64asF32 = 82145,   335     Iop_TruncF64asF32 = 82145,
336     Iop_RoundF64toF32 = 82146,   336     Iop_RoundF64toF32 = 82146,
337     Iop_CalcFPRF = 82147,   337     Iop_CalcFPRF = 82147,
338     Iop_Add16x2 = 82148,   338     Iop_Add16x2 = 82148,
339     Iop_Sub16x2 = 82149,   339     Iop_Sub16x2 = 82149,
340     Iop_QAdd16Sx2 = 82150,   340     Iop_QAdd16Sx2 = 82150,
341     Iop_QAdd16Ux2 = 82151,   341     Iop_QAdd16Ux2 = 82151,
342     Iop_QSub16Sx2 = 82152,   342     Iop_QSub16Sx2 = 82152,
343     Iop_QSub16Ux2 = 82153,   343     Iop_QSub16Ux2 = 82153,
344     Iop_HAdd16Ux2 = 82154,   344     Iop_HAdd16Ux2 = 82154,
345     Iop_HAdd16Sx2 = 82155,   345     Iop_HAdd16Sx2 = 82155,
346     Iop_HSub16Ux2 = 82156,   346     Iop_HSub16Ux2 = 82156,
347     Iop_HSub16Sx2 = 82157,   347     Iop_HSub16Sx2 = 82157,
348     Iop_Add8x4 = 82158,   348     Iop_Add8x4 = 82158,
349     Iop_Sub8x4 = 82159,   349     Iop_Sub8x4 = 82159,
350     Iop_QAdd8Sx4 = 82160,   350     Iop_QAdd8Sx4 = 82160,
351     Iop_QAdd8Ux4 = 82161,   351     Iop_QAdd8Ux4 = 82161,
352     Iop_QSub8Sx4 = 82162,   352     Iop_QSub8Sx4 = 82162,
353     Iop_QSub8Ux4 = 82163,   353     Iop_QSub8Ux4 = 82163,
354     Iop_HAdd8Ux4 = 82164,   354     Iop_HAdd8Ux4 = 82164,
355     Iop_HAdd8Sx4 = 82165,   355     Iop_HAdd8Sx4 = 82165,
356     Iop_HSub8Ux4 = 82166,   356     Iop_HSub8Ux4 = 82166,
357     Iop_HSub8Sx4 = 82167,   357     Iop_HSub8Sx4 = 82167,
358     Iop_Sad8Ux4 = 82168,   358     Iop_Sad8Ux4 = 82168,
359     Iop_CmpNEZ16x2 = 82169,   359     Iop_CmpNEZ16x2 = 82169,
360     Iop_CmpNEZ8x4 = 82170,   360     Iop_CmpNEZ8x4 = 82170,
361     Iop_I32UtoFx2 = 82171,   361     Iop_I32UtoFx2 = 82171,
362     Iop_I32StoFx2 = 82172,   362     Iop_I32StoFx2 = 82172,
363     Iop_FtoI32Ux2_RZ = 82173,   363     Iop_FtoI32Ux2_RZ = 82173,
364     Iop_FtoI32Sx2_RZ = 82174,   364     Iop_FtoI32Sx2_RZ = 82174,
365     Iop_F32ToFixed32Ux2_RZ = 82175,   365     Iop_F32ToFixed32Ux2_RZ = 82175,
366     Iop_F32ToFixed32Sx2_RZ = 82176,   366     Iop_F32ToFixed32Sx2_RZ = 82176,
367     Iop_Fixed32UToF32x2_RN = 82177,   367     Iop_Fixed32UToF32x2_RN = 82177,
368     Iop_Fixed32SToF32x2_RN = 82178,   368     Iop_Fixed32SToF32x2_RN = 82178,
369     Iop_Max32Fx2 = 82179,   369     Iop_Max32Fx2 = 82179,
370     Iop_Min32Fx2 = 82180,   370     Iop_Min32Fx2 = 82180,
371     Iop_PwMax32Fx2 = 82181,   371     Iop_PwMax32Fx2 = 82181,
372     Iop_PwMin32Fx2 = 82182,   372     Iop_PwMin32Fx2 = 82182,
373     Iop_CmpEQ32Fx2 = 82183,   373     Iop_CmpEQ32Fx2 = 82183,
374     Iop_CmpGT32Fx2 = 82184,   374     Iop_CmpGT32Fx2 = 82184,
375     Iop_CmpGE32Fx2 = 82185,   375     Iop_CmpGE32Fx2 = 82185,
376     Iop_Recip32Fx2 = 82186,   376     Iop_Recip32Fx2 = 82186,
377     Iop_Recps32Fx2 = 82187,   377     Iop_Recps32Fx2 = 82187,
378     Iop_Rsqrte32Fx2 = 82188,   378     Iop_Rsqrte32Fx2 = 82188,
379     Iop_Rsqrts32Fx2 = 82189,   379     Iop_Rsqrts32Fx2 = 82189,
380     Iop_Neg32Fx2 = 82190,   380     Iop_Neg32Fx2 = 82190,
381     Iop_Abs32Fx2 = 82191,   381     Iop_Abs32Fx2 = 82191,
382     Iop_CmpNEZ8x8 = 82192,   382     Iop_CmpNEZ8x8 = 82192,
383     Iop_CmpNEZ16x4 = 82193,   383     Iop_CmpNEZ16x4 = 82193,
384     Iop_CmpNEZ32x2 = 82194,   384     Iop_CmpNEZ32x2 = 82194,
385     Iop_Add8x8 = 82195,   385     Iop_Add8x8 = 82195,
386     Iop_Add16x4 = 82196,   386     Iop_Add16x4 = 82196,
387     Iop_Add32x2 = 82197,   387     Iop_Add32x2 = 82197,
388     Iop_QAdd8Ux8 = 82198,   388     Iop_QAdd8Ux8 = 82198,
389     Iop_QAdd16Ux4 = 82199,   389     Iop_QAdd16Ux4 = 82199,
390     Iop_QAdd32Ux2 = 82200,   390     Iop_QAdd32Ux2 = 82200,
391     Iop_QAdd64Ux1 = 82201,   391     Iop_QAdd64Ux1 = 82201,
392     Iop_QAdd8Sx8 = 82202,   392     Iop_QAdd8Sx8 = 82202,
393     Iop_QAdd16Sx4 = 82203,   393     Iop_QAdd16Sx4 = 82203,
394     Iop_QAdd32Sx2 = 82204,   394     Iop_QAdd32Sx2 = 82204,
395     Iop_QAdd64Sx1 = 82205,   395     Iop_QAdd64Sx1 = 82205,
396     Iop_PwAdd8x8 = 82206,   396     Iop_PwAdd8x8 = 82206,
397     Iop_PwAdd16x4 = 82207,   397     Iop_PwAdd16x4 = 82207,
398     Iop_PwAdd32x2 = 82208,   398     Iop_PwAdd32x2 = 82208,
399     Iop_PwMax8Sx8 = 82209,   399     Iop_PwMax8Sx8 = 82209,
400     Iop_PwMax16Sx4 = 82210,   400     Iop_PwMax16Sx4 = 82210,
401     Iop_PwMax32Sx2 = 82211,   401     Iop_PwMax32Sx2 = 82211,
402     Iop_PwMax8Ux8 = 82212,   402     Iop_PwMax8Ux8 = 82212,
403     Iop_PwMax16Ux4 = 82213,   403     Iop_PwMax16Ux4 = 82213,
404     Iop_PwMax32Ux2 = 82214,   404     Iop_PwMax32Ux2 = 82214,
405     Iop_PwMin8Sx8 = 82215,   405     Iop_PwMin8Sx8 = 82215,
406     Iop_PwMin16Sx4 = 82216,   406     Iop_PwMin16Sx4 = 82216,
407     Iop_PwMin32Sx2 = 82217,   407     Iop_PwMin32Sx2 = 82217,
408     Iop_PwMin8Ux8 = 82218,   408     Iop_PwMin8Ux8 = 82218,
409     Iop_PwMin16Ux4 = 82219,   409     Iop_PwMin16Ux4 = 82219,
410     Iop_PwMin32Ux2 = 82220,   410     Iop_PwMin32Ux2 = 82220,
411     Iop_PwAddL8Ux8 = 82221,   411     Iop_PwAddL8Ux8 = 82221,
412     Iop_PwAddL16Ux4 = 82222,   412     Iop_PwAddL16Ux4 = 82222,
413     Iop_PwAddL32Ux2 = 82223,   413     Iop_PwAddL32Ux2 = 82223,
414     Iop_PwAddL8Sx8 = 82224,   414     Iop_PwAddL8Sx8 = 82224,
415     Iop_PwAddL16Sx4 = 82225,   415     Iop_PwAddL16Sx4 = 82225,
416     Iop_PwAddL32Sx2 = 82226,   416     Iop_PwAddL32Sx2 = 82226,
417     Iop_Sub8x8 = 82227,   417     Iop_Sub8x8 = 82227,
418     Iop_Sub16x4 = 82228,   418     Iop_Sub16x4 = 82228,
419     Iop_Sub32x2 = 82229,   419     Iop_Sub32x2 = 82229,
420     Iop_QSub8Ux8 = 82230,   420     Iop_QSub8Ux8 = 82230,
421     Iop_QSub16Ux4 = 82231,   421     Iop_QSub16Ux4 = 82231,
422     Iop_QSub32Ux2 = 82232,   422     Iop_QSub32Ux2 = 82232,
423     Iop_QSub64Ux1 = 82233,   423     Iop_QSub64Ux1 = 82233,
424     Iop_QSub8Sx8 = 82234,   424     Iop_QSub8Sx8 = 82234,
425     Iop_QSub16Sx4 = 82235,   425     Iop_QSub16Sx4 = 82235,
426     Iop_QSub32Sx2 = 82236,   426     Iop_QSub32Sx2 = 82236,
427     Iop_QSub64Sx1 = 82237,   427     Iop_QSub64Sx1 = 82237,
428     Iop_Abs8x8 = 82238,   428     Iop_Abs8x8 = 82238,
429     Iop_Abs16x4 = 82239,   429     Iop_Abs16x4 = 82239,
430     Iop_Abs32x2 = 82240,   430     Iop_Abs32x2 = 82240,
431     Iop_Mul8x8 = 82241,   431     Iop_Mul8x8 = 82241,
432     Iop_Mul16x4 = 82242,   432     Iop_Mul16x4 = 82242,
433     Iop_Mul32x2 = 82243,   433     Iop_Mul32x2 = 82243,
434     Iop_Mul32Fx2 = 82244,   434     Iop_Mul32Fx2 = 82244,
435     Iop_MulHi16Ux4 = 82245,   435     Iop_MulHi16Ux4 = 82245,
436     Iop_MulHi16Sx4 = 82246,   436     Iop_MulHi16Sx4 = 82246,
437     Iop_PolynomialMul8x8 = 82247,   437     Iop_PolynomialMul8x8 = 82247,
438     Iop_QDMulHi16Sx4 = 82248,   438     Iop_QDMulHi16Sx4 = 82248,
439     Iop_QDMulHi32Sx2 = 82249,   439     Iop_QDMulHi32Sx2 = 82249,
440     Iop_QRDMulHi16Sx4 = 82250,   440     Iop_QRDMulHi16Sx4 = 82250,
441     Iop_QRDMulHi32Sx2 = 82251,   441     Iop_QRDMulHi32Sx2 = 82251,
442     Iop_Avg8Ux8 = 82252,   442     Iop_Avg8Ux8 = 82252,
443     Iop_Avg16Ux4 = 82253,   443     Iop_Avg16Ux4 = 82253,
444     Iop_Max8Sx8 = 82254,   444     Iop_Max8Sx8 = 82254,
445     Iop_Max16Sx4 = 82255,   445     Iop_Max16Sx4 = 82255,
446     Iop_Max32Sx2 = 82256,   446     Iop_Max32Sx2 = 82256,
447     Iop_Max8Ux8 = 82257,   447     Iop_Max8Ux8 = 82257,
448     Iop_Max16Ux4 = 82258,   448     Iop_Max16Ux4 = 82258,
449     Iop_Max32Ux2 = 82259,   449     Iop_Max32Ux2 = 82259,
450     Iop_Min8Sx8 = 82260,   450     Iop_Min8Sx8 = 82260,
451     Iop_Min16Sx4 = 82261,   451     Iop_Min16Sx4 = 82261,
452     Iop_Min32Sx2 = 82262,   452     Iop_Min32Sx2 = 82262,
453     Iop_Min8Ux8 = 82263,   453     Iop_Min8Ux8 = 82263,
454     Iop_Min16Ux4 = 82264,   454     Iop_Min16Ux4 = 82264,
455     Iop_Min32Ux2 = 82265,   455     Iop_Min32Ux2 = 82265,
456     Iop_CmpEQ8x8 = 82266,   456     Iop_CmpEQ8x8 = 82266,
457     Iop_CmpEQ16x4 = 82267,   457     Iop_CmpEQ16x4 = 82267,
458     Iop_CmpEQ32x2 = 82268,   458     Iop_CmpEQ32x2 = 82268,
459     Iop_CmpGT8Ux8 = 82269,   459     Iop_CmpGT8Ux8 = 82269,
460     Iop_CmpGT16Ux4 = 82270,   460     Iop_CmpGT16Ux4 = 82270,
461     Iop_CmpGT32Ux2 = 82271,   461     Iop_CmpGT32Ux2 = 82271,
462     Iop_CmpGT8Sx8 = 82272,   462     Iop_CmpGT8Sx8 = 82272,
463     Iop_CmpGT16Sx4 = 82273,   463     Iop_CmpGT16Sx4 = 82273,
464     Iop_CmpGT32Sx2 = 82274,   464     Iop_CmpGT32Sx2 = 82274,
465     Iop_Cnt8x8 = 82275,   465     Iop_Cnt8x8 = 82275,
466     Iop_Clz8Sx8 = 82276,   466     Iop_Clz8Sx8 = 82276,
467     Iop_Clz16Sx4 = 82277,   467     Iop_Clz16Sx4 = 82277,
468     Iop_Clz32Sx2 = 82278,   468     Iop_Clz32Sx2 = 82278,
469     Iop_Cls8Sx8 = 82279,   469     Iop_Cls8Sx8 = 82279,
470     Iop_Cls16Sx4 = 82280,   470     Iop_Cls16Sx4 = 82280,
471     Iop_Cls32Sx2 = 82281,   471     Iop_Cls32Sx2 = 82281,
472     Iop_Shl8x8 = 82282,   472     Iop_Shl8x8 = 82282,
473     Iop_Shl16x4 = 82283,   473     Iop_Shl16x4 = 82283,
474     Iop_Shl32x2 = 82284,   474     Iop_Shl32x2 = 82284,
475     Iop_Shr8x8 = 82285,   475     Iop_Shr8x8 = 82285,
476     Iop_Shr16x4 = 82286,   476     Iop_Shr16x4 = 82286,
477     Iop_Shr32x2 = 82287,   477     Iop_Shr32x2 = 82287,
478     Iop_Sar8x8 = 82288,   478     Iop_Sar8x8 = 82288,
479     Iop_Sar16x4 = 82289,   479     Iop_Sar16x4 = 82289,
480     Iop_Sar32x2 = 82290,   480     Iop_Sar32x2 = 82290,
481     Iop_Sal8x8 = 82291,   481     Iop_Sal8x8 = 82291,
482     Iop_Sal16x4 = 82292,   482     Iop_Sal16x4 = 82292,
483     Iop_Sal32x2 = 82293,   483     Iop_Sal32x2 = 82293,
484     Iop_Sal64x1 = 82294,   484     Iop_Sal64x1 = 82294,
485     Iop_ShlN8x8 = 82295,   485     Iop_ShlN8x8 = 82295,
486     Iop_ShlN16x4 = 82296,   486     Iop_ShlN16x4 = 82296,
487     Iop_ShlN32x2 = 82297,   487     Iop_ShlN32x2 = 82297,
488     Iop_ShrN8x8 = 82298,   488     Iop_ShrN8x8 = 82298,
489     Iop_ShrN16x4 = 82299,   489     Iop_ShrN16x4 = 82299,
490     Iop_ShrN32x2 = 82300,   490     Iop_ShrN32x2 = 82300,
491     Iop_SarN8x8 = 82301,   491     Iop_SarN8x8 = 82301,
492     Iop_SarN16x4 = 82302,   492     Iop_SarN16x4 = 82302,
493     Iop_SarN32x2 = 82303,   493     Iop_SarN32x2 = 82303,
494     Iop_QShl8x8 = 82304,   494     Iop_QShl8x8 = 82304,
495     Iop_QShl16x4 = 82305,   495     Iop_QShl16x4 = 82305,
496     Iop_QShl32x2 = 82306,   496     Iop_QShl32x2 = 82306,
497     Iop_QShl64x1 = 82307,   497     Iop_QShl64x1 = 82307,
498     Iop_QSal8x8 = 82308,   498     Iop_QSal8x8 = 82308,
499     Iop_QSal16x4 = 82309,   499     Iop_QSal16x4 = 82309,
500     Iop_QSal32x2 = 82310,   500     Iop_QSal32x2 = 82310,
501     Iop_QSal64x1 = 82311,   501     Iop_QSal64x1 = 82311,
502     Iop_QShlN8Sx8 = 82312,   502     Iop_QShlN8Sx8 = 82312,
503     Iop_QShlN16Sx4 = 82313,   503     Iop_QShlN16Sx4 = 82313,
504     Iop_QShlN32Sx2 = 82314,   504     Iop_QShlN32Sx2 = 82314,
505     Iop_QShlN64Sx1 = 82315,   505     Iop_QShlN64Sx1 = 82315,
506     Iop_QShlN8x8 = 82316,   506     Iop_QShlN8x8 = 82316,
507     Iop_QShlN16x4 = 82317,   507     Iop_QShlN16x4 = 82317,
508     Iop_QShlN32x2 = 82318,   508     Iop_QShlN32x2 = 82318,
509     Iop_QShlN64x1 = 82319,   509     Iop_QShlN64x1 = 82319,
510     Iop_QSalN8x8 = 82320,   510     Iop_QSalN8x8 = 82320,
511     Iop_QSalN16x4 = 82321,   511     Iop_QSalN16x4 = 82321,
512     Iop_QSalN32x2 = 82322,   512     Iop_QSalN32x2 = 82322,
513     Iop_QSalN64x1 = 82323,   513     Iop_QSalN64x1 = 82323,
514     Iop_QNarrowBin16Sto8Ux8 = 82324,   514     Iop_QNarrowBin16Sto8Ux8 = 82324,
515     Iop_QNarrowBin16Sto8Sx8 = 82325,   515     Iop_QNarrowBin16Sto8Sx8 = 82325,
516     Iop_QNarrowBin32Sto16Sx4 = 82326,   516     Iop_QNarrowBin32Sto16Sx4 = 82326,
517     Iop_InterleaveHI8x8 = 82327,   517     Iop_InterleaveHI8x8 = 82327,
518     Iop_InterleaveHI16x4 = 82328,   518     Iop_InterleaveHI16x4 = 82328,
519     Iop_InterleaveHI32x2 = 82329,   519     Iop_InterleaveHI32x2 = 82329,
520     Iop_InterleaveLO8x8 = 82330,   520     Iop_InterleaveLO8x8 = 82330,
521     Iop_InterleaveLO16x4 = 82331,   521     Iop_InterleaveLO16x4 = 82331,
522     Iop_InterleaveLO32x2 = 82332,   522     Iop_InterleaveLO32x2 = 82332,
523     Iop_InterleaveOddLanes8x8 = 82333,   523     Iop_InterleaveOddLanes8x8 = 82333,
524     Iop_InterleaveEvenLanes8x8 = 82334,   524     Iop_InterleaveEvenLanes8x8 = 82334,
525     Iop_InterleaveOddLanes16x4 = 82335,   525     Iop_InterleaveOddLanes16x4 = 82335,
526     Iop_InterleaveEvenLanes16x4 = 82336,   526     Iop_InterleaveEvenLanes16x4 = 82336,
527     Iop_CatOddLanes8x8 = 82337,   527     Iop_CatOddLanes8x8 = 82337,
528     Iop_CatOddLanes16x4 = 82338,   528     Iop_CatOddLanes16x4 = 82338,
529     Iop_CatEvenLanes8x8 = 82339,   529     Iop_CatEvenLanes8x8 = 82339,
530     Iop_CatEvenLanes16x4 = 82340,   530     Iop_CatEvenLanes16x4 = 82340,
531     Iop_GetElem8x8 = 82341,   531     Iop_GetElem8x8 = 82341,
532     Iop_GetElem16x4 = 82342,   532     Iop_GetElem16x4 = 82342,
533     Iop_GetElem32x2 = 82343,   533     Iop_GetElem32x2 = 82343,
534     Iop_SetElem8x8 = 82344,   534     Iop_SetElem8x8 = 82344,
535     Iop_SetElem16x4 = 82345,   535     Iop_SetElem16x4 = 82345,
536     Iop_SetElem32x2 = 82346,   536     Iop_SetElem32x2 = 82346,
537     Iop_Dup8x8 = 82347,   537     Iop_Dup8x8 = 82347,
538     Iop_Dup16x4 = 82348,   538     Iop_Dup16x4 = 82348,
539     Iop_Dup32x2 = 82349,   539     Iop_Dup32x2 = 82349,
540     Iop_Extract64 = 82350,   540     Iop_Extract64 = 82350,
541     Iop_Reverse16_8x8 = 82351,   541     Iop_Reverse16_8x8 = 82351,
542     Iop_Reverse32_8x8 = 82352,   542     Iop_Reverse32_8x8 = 82352,
543     Iop_Reverse32_16x4 = 82353,   543     Iop_Reverse32_16x4 = 82353,
544     Iop_Reverse64_8x8 = 82354,   544     Iop_Reverse64_8x8 = 82354,
545     Iop_Reverse64_16x4 = 82355,   545     Iop_Reverse64_16x4 = 82355,
546     Iop_Reverse64_32x2 = 82356,   546     Iop_Reverse64_32x2 = 82356,
547     Iop_Perm8x8 = 82357,   547     Iop_Perm8x8 = 82357,
548     Iop_Recip32x2 = 82358,   548     Iop_Recip32x2 = 82358,
549     Iop_Rsqrte32x2 = 82359,   549     Iop_Rsqrte32x2 = 82359,
550     Iop_Add32Fx4 = 82360,   550     Iop_Add32Fx4 = 82360,
551     Iop_Sub32Fx4 = 82361,   551     Iop_Sub32Fx4 = 82361,
552     Iop_Mul32Fx4 = 82362,   552     Iop_Mul32Fx4 = 82362,
553     Iop_Div32Fx4 = 82363,   553     Iop_Div32Fx4 = 82363,
554     Iop_Max32Fx4 = 82364,   554     Iop_Max32Fx4 = 82364,
555     Iop_Min32Fx4 = 82365,   555     Iop_Min32Fx4 = 82365,
556     Iop_Add32Fx2 = 82366,   556     Iop_Add32Fx2 = 82366,
557     Iop_Sub32Fx2 = 82367,   557     Iop_Sub32Fx2 = 82367,
558     Iop_CmpEQ32Fx4 = 82368,   558     Iop_CmpEQ32Fx4 = 82368,
559     Iop_CmpLT32Fx4 = 82369,   559     Iop_CmpLT32Fx4 = 82369,
560     Iop_CmpLE32Fx4 = 82370,   560     Iop_CmpLE32Fx4 = 82370,
561     Iop_CmpUN32Fx4 = 82371,   561     Iop_CmpUN32Fx4 = 82371,
562     Iop_CmpGT32Fx4 = 82372,   562     Iop_CmpGT32Fx4 = 82372,
563     Iop_CmpGE32Fx4 = 82373,   563     Iop_CmpGE32Fx4 = 82373,
564     Iop_Abs32Fx4 = 82374,   564     Iop_Abs32Fx4 = 82374,
565     Iop_PwMax32Fx4 = 82375,   565     Iop_PwMax32Fx4 = 82375,
566     Iop_PwMin32Fx4 = 82376,   566     Iop_PwMin32Fx4 = 82376,
567     Iop_Sqrt32Fx4 = 82377,   567     Iop_Sqrt32Fx4 = 82377,
568     Iop_RSqrt32Fx4 = 82378,   568     Iop_RSqrt32Fx4 = 82378,
569     Iop_Neg32Fx4 = 82379,   569     Iop_Neg32Fx4 = 82379,
570     Iop_Recip32Fx4 = 82380,   570     Iop_Recip32Fx4 = 82380,
571     Iop_Recps32Fx4 = 82381,   571     Iop_Recps32Fx4 = 82381,
572     Iop_Rsqrte32Fx4 = 82382,   572     Iop_Rsqrte32Fx4 = 82382,
573     Iop_Rsqrts32Fx4 = 82383,   573     Iop_Rsqrts32Fx4 = 82383,
574     Iop_I32UtoFx4 = 82384,   574     Iop_I32UtoFx4 = 82384,
575     Iop_I32StoFx4 = 82385,   575     Iop_I32StoFx4 = 82385,
576     Iop_FtoI32Ux4_RZ = 82386,   576     Iop_FtoI32Ux4_RZ = 82386,
577     Iop_FtoI32Sx4_RZ = 82387,   577     Iop_FtoI32Sx4_RZ = 82387,
578     Iop_QFtoI32Ux4_RZ = 82388,   578     Iop_QFtoI32Ux4_RZ = 82388,
579     Iop_QFtoI32Sx4_RZ = 82389,   579     Iop_QFtoI32Sx4_RZ = 82389,
580     Iop_RoundF32x4_RM = 82390,   580     Iop_RoundF32x4_RM = 82390,
581     Iop_RoundF32x4_RP = 82391,   581     Iop_RoundF32x4_RP = 82391,
582     Iop_RoundF32x4_RN = 82392,   582     Iop_RoundF32x4_RN = 82392,
583     Iop_RoundF32x4_RZ = 82393,   583     Iop_RoundF32x4_RZ = 82393,
584     Iop_F32ToFixed32Ux4_RZ = 82394,   584     Iop_F32ToFixed32Ux4_RZ = 82394,
585     Iop_F32ToFixed32Sx4_RZ = 82395,   585     Iop_F32ToFixed32Sx4_RZ = 82395,
586     Iop_Fixed32UToF32x4_RN = 82396,   586     Iop_Fixed32UToF32x4_RN = 82396,
587     Iop_Fixed32SToF32x4_RN = 82397,   587     Iop_Fixed32SToF32x4_RN = 82397,
588     Iop_F32toF16x4 = 82398,   588     Iop_F32toF16x4 = 82398,
589     Iop_F16toF32x4 = 82399,   589     Iop_F16toF32x4 = 82399,
590     Iop_Add32F0x4 = 82400,   590     Iop_Add32F0x4 = 82400,
591     Iop_Sub32F0x4 = 82401,   591     Iop_Sub32F0x4 = 82401,
592     Iop_Mul32F0x4 = 82402,   592     Iop_Mul32F0x4 = 82402,
593     Iop_Div32F0x4 = 82403,   593     Iop_Div32F0x4 = 82403,
594     Iop_Max32F0x4 = 82404,   594     Iop_Max32F0x4 = 82404,
595     Iop_Min32F0x4 = 82405,   595     Iop_Min32F0x4 = 82405,
596     Iop_CmpEQ32F0x4 = 82406,   596     Iop_CmpEQ32F0x4 = 82406,
597     Iop_CmpLT32F0x4 = 82407,   597     Iop_CmpLT32F0x4 = 82407,
598     Iop_CmpLE32F0x4 = 82408,   598     Iop_CmpLE32F0x4 = 82408,
599     Iop_CmpUN32F0x4 = 82409,   599     Iop_CmpUN32F0x4 = 82409,
600     Iop_Recip32F0x4 = 82410,   600     Iop_Recip32F0x4 = 82410,
601     Iop_Sqrt32F0x4 = 82411,   601     Iop_Sqrt32F0x4 = 82411,
602     Iop_RSqrt32F0x4 = 82412,   602     Iop_RSqrt32F0x4 = 82412,
603     Iop_Add64Fx2 = 82413,   603     Iop_Add64Fx2 = 82413,
604     Iop_Sub64Fx2 = 82414,   604     Iop_Sub64Fx2 = 82414,
605     Iop_Mul64Fx2 = 82415,   605     Iop_Mul64Fx2 = 82415,
606     Iop_Div64Fx2 = 82416,   606     Iop_Div64Fx2 = 82416,
607     Iop_Max64Fx2 = 82417,   607     Iop_Max64Fx2 = 82417,
608     Iop_Min64Fx2 = 82418,   608     Iop_Min64Fx2 = 82418,
609     Iop_CmpEQ64Fx2 = 82419,   609     Iop_CmpEQ64Fx2 = 82419,
610     Iop_CmpLT64Fx2 = 82420,   610     Iop_CmpLT64Fx2 = 82420,
611     Iop_CmpLE64Fx2 = 82421,   611     Iop_CmpLE64Fx2 = 82421,
612     Iop_CmpUN64Fx2 = 82422,   612     Iop_CmpUN64Fx2 = 82422,
613     Iop_Recip64Fx2 = 82423,   613     Iop_Recip64Fx2 = 82423,
614     Iop_Sqrt64Fx2 = 82424,   614     Iop_Sqrt64Fx2 = 82424,
615     Iop_RSqrt64Fx2 = 82425,   615     Iop_RSqrt64Fx2 = 82425,
616     Iop_Add64F0x2 = 82426,   616     Iop_Add64F0x2 = 82426,
617     Iop_Sub64F0x2 = 82427,   617     Iop_Sub64F0x2 = 82427,
618     Iop_Mul64F0x2 = 82428,   618     Iop_Mul64F0x2 = 82428,
619     Iop_Div64F0x2 = 82429,   619     Iop_Div64F0x2 = 82429,
620     Iop_Max64F0x2 = 82430,   620     Iop_Max64F0x2 = 82430,
621     Iop_Min64F0x2 = 82431,   621     Iop_Min64F0x2 = 82431,
622     Iop_CmpEQ64F0x2 = 82432,   622     Iop_CmpEQ64F0x2 = 82432,
623     Iop_CmpLT64F0x2 = 82433,   623     Iop_CmpLT64F0x2 = 82433,
624     Iop_CmpLE64F0x2 = 82434,   624     Iop_CmpLE64F0x2 = 82434,
625     Iop_CmpUN64F0x2 = 82435,   625     Iop_CmpUN64F0x2 = 82435,
626     Iop_Recip64F0x2 = 82436,   626     Iop_Recip64F0x2 = 82436,
627     Iop_Sqrt64F0x2 = 82437,   627     Iop_Sqrt64F0x2 = 82437,
628     Iop_RSqrt64F0x2 = 82438,   628     Iop_RSqrt64F0x2 = 82438,
629     Iop_V128to64 = 82439,   629     Iop_V128to64 = 82439,
630     Iop_V128HIto64 = 82440,   630     Iop_V128HIto64 = 82440,
631     Iop_64HLtoV128 = 82441,   631     Iop_64HLtoV128 = 82441,
632     Iop_64UtoV128 = 82442,   632     Iop_64UtoV128 = 82442,
633     Iop_SetV128lo64 = 82443,   633     Iop_SetV128lo64 = 82443,
634     Iop_32UtoV128 = 82444,   634     Iop_32UtoV128 = 82444,
635     Iop_V128to32 = 82445,   635     Iop_V128to32 = 82445,
636     Iop_SetV128lo32 = 82446,   636     Iop_SetV128lo32 = 82446,
637     Iop_NotV128 = 82447,   637     Iop_NotV128 = 82447,
638     Iop_AndV128 = 82448,   638     Iop_AndV128 = 82448,
639     Iop_OrV128 = 82449,   639     Iop_OrV128 = 82449,
640     Iop_XorV128 = 82450,   640     Iop_XorV128 = 82450,
641     Iop_ShlV128 = 82451,   641     Iop_ShlV128 = 82451,
642     Iop_ShrV128 = 82452,   642     Iop_ShrV128 = 82452,
643     Iop_CmpNEZ8x16 = 82453,   643     Iop_CmpNEZ8x16 = 82453,
644     Iop_CmpNEZ16x8 = 82454,   644     Iop_CmpNEZ16x8 = 82454,
645     Iop_CmpNEZ32x4 = 82455,   645     Iop_CmpNEZ32x4 = 82455,
646     Iop_CmpNEZ64x2 = 82456,   646     Iop_CmpNEZ64x2 = 82456,
647     Iop_Add8x16 = 82457,   647     Iop_Add8x16 = 82457,
648     Iop_Add16x8 = 82458,   648     Iop_Add16x8 = 82458,
649     Iop_Add32x4 = 82459,   649     Iop_Add32x4 = 82459,
650     Iop_Add64x2 = 82460,   650     Iop_Add64x2 = 82460,
651     Iop_QAdd8Ux16 = 82461,   651     Iop_QAdd8Ux16 = 82461,
652     Iop_QAdd16Ux8 = 82462,   652     Iop_QAdd16Ux8 = 82462,
653     Iop_QAdd32Ux4 = 82463,   653     Iop_QAdd32Ux4 = 82463,
654     Iop_QAdd64Ux2 = 82464,   654     Iop_QAdd64Ux2 = 82464,
655     Iop_QAdd8Sx16 = 82465,   655     Iop_QAdd8Sx16 = 82465,
656     Iop_QAdd16Sx8 = 82466,   656     Iop_QAdd16Sx8 = 82466,
657     Iop_QAdd32Sx4 = 82467,   657     Iop_QAdd32Sx4 = 82467,
658     Iop_QAdd64Sx2 = 82468,   658     Iop_QAdd64Sx2 = 82468,
659     Iop_Sub8x16 = 82469,   659     Iop_Sub8x16 = 82469,
660     Iop_Sub16x8 = 82470,   660     Iop_Sub16x8 = 82470,
661     Iop_Sub32x4 = 82471,   661     Iop_Sub32x4 = 82471,
662     Iop_Sub64x2 = 82472,   662     Iop_Sub64x2 = 82472,
663     Iop_QSub8Ux16 = 82473,   663     Iop_QSub8Ux16 = 82473,
664     Iop_QSub16Ux8 = 82474,   664     Iop_QSub16Ux8 = 82474,
665     Iop_QSub32Ux4 = 82475,   665     Iop_QSub32Ux4 = 82475,
666     Iop_QSub64Ux2 = 82476,   666     Iop_QSub64Ux2 = 82476,
667     Iop_QSub8Sx16 = 82477,   667     Iop_QSub8Sx16 = 82477,
668     Iop_QSub16Sx8 = 82478,   668     Iop_QSub16Sx8 = 82478,
669     Iop_QSub32Sx4 = 82479,   669     Iop_QSub32Sx4 = 82479,
670     Iop_QSub64Sx2 = 82480,   670     Iop_QSub64Sx2 = 82480,
671     Iop_Mul8x16 = 82481,   671     Iop_Mul8x16 = 82481,
672     Iop_Mul16x8 = 82482,   672     Iop_Mul16x8 = 82482,
673     Iop_Mul32x4 = 82483,   673     Iop_Mul32x4 = 82483,
674     Iop_MulHi16Ux8 = 82484,   674     Iop_MulHi16Ux8 = 82484,
675     Iop_MulHi32Ux4 = 82485,   675     Iop_MulHi32Ux4 = 82485,
676     Iop_MulHi16Sx8 = 82486,   676     Iop_MulHi16Sx8 = 82486,
677     Iop_MulHi32Sx4 = 82487,   677     Iop_MulHi32Sx4 = 82487,
678     Iop_MullEven8Ux16 = 82488,   678     Iop_MullEven8Ux16 = 82488,
679     Iop_MullEven16Ux8 = 82489,   679     Iop_MullEven16Ux8 = 82489,
680     Iop_MullEven8Sx16 = 82490,   680     Iop_MullEven8Sx16 = 82490,
681     Iop_MullEven16Sx8 = 82491,   681     Iop_MullEven16Sx8 = 82491,
682     Iop_Mull8Ux8 = 82492,   682     Iop_Mull8Ux8 = 82492,
683     Iop_Mull8Sx8 = 82493,   683     Iop_Mull8Sx8 = 82493,
684     Iop_Mull16Ux4 = 82494,   684     Iop_Mull16Ux4 = 82494,
685     Iop_Mull16Sx4 = 82495,   685     Iop_Mull16Sx4 = 82495,
686     Iop_Mull32Ux2 = 82496,   686     Iop_Mull32Ux2 = 82496,
687     Iop_Mull32Sx2 = 82497,   687     Iop_Mull32Sx2 = 82497,
688     Iop_QDMulHi16Sx8 = 82498,   688     Iop_QDMulHi16Sx8 = 82498,
689     Iop_QDMulHi32Sx4 = 82499,   689     Iop_QDMulHi32Sx4 = 82499,
690     Iop_QRDMulHi16Sx8 = 82500,   690     Iop_QRDMulHi16Sx8 = 82500,
691     Iop_QRDMulHi32Sx4 = 82501,   691     Iop_QRDMulHi32Sx4 = 82501,
692     Iop_QDMulLong16Sx4 = 82502,   692     Iop_QDMulLong16Sx4 = 82502,
693     Iop_QDMulLong32Sx2 = 82503,   693     Iop_QDMulLong32Sx2 = 82503,
694     Iop_PolynomialMul8x16 = 82504,   694     Iop_PolynomialMul8x16 = 82504,
695     Iop_PolynomialMull8x8 = 82505,   695     Iop_PolynomialMull8x8 = 82505,
696     Iop_PwAdd8x16 = 82506,   696     Iop_PwAdd8x16 = 82506,
697     Iop_PwAdd16x8 = 82507,   697     Iop_PwAdd16x8 = 82507,
698     Iop_PwAdd32x4 = 82508,   698     Iop_PwAdd32x4 = 82508,
699     Iop_PwAdd32Fx2 = 82509,   699     Iop_PwAdd32Fx2 = 82509,
700     Iop_PwAddL8Ux16 = 82510,   700     Iop_PwAddL8Ux16 = 82510,
701     Iop_PwAddL16Ux8 = 82511,   701     Iop_PwAddL16Ux8 = 82511,
702     Iop_PwAddL32Ux4 = 82512,   702     Iop_PwAddL32Ux4 = 82512,
703     Iop_PwAddL8Sx16 = 82513,   703     Iop_PwAddL8Sx16 = 82513,
704     Iop_PwAddL16Sx8 = 82514,   704     Iop_PwAddL16Sx8 = 82514,
705     Iop_PwAddL32Sx4 = 82515,   705     Iop_PwAddL32Sx4 = 82515,
706     Iop_Abs8x16 = 82516,   706     Iop_Abs8x16 = 82516,
707     Iop_Abs16x8 = 82517,   707     Iop_Abs16x8 = 82517,
708     Iop_Abs32x4 = 82518,   708     Iop_Abs32x4 = 82518,
709     Iop_Avg8Ux16 = 82519,   709     Iop_Avg8Ux16 = 82519,
710     Iop_Avg16Ux8 = 82520,   710     Iop_Avg16Ux8 = 82520,
711     Iop_Avg32Ux4 = 82521,   711     Iop_Avg32Ux4 = 82521,
712     Iop_Avg8Sx16 = 82522,   712     Iop_Avg8Sx16 = 82522,
713     Iop_Avg16Sx8 = 82523,   713     Iop_Avg16Sx8 = 82523,
714     Iop_Avg32Sx4 = 82524,   714     Iop_Avg32Sx4 = 82524,
715     Iop_Max8Sx16 = 82525,   715     Iop_Max8Sx16 = 82525,
716     Iop_Max16Sx8 = 82526,   716     Iop_Max16Sx8 = 82526,
717     Iop_Max32Sx4 = 82527,   717     Iop_Max32Sx4 = 82527,
718     Iop_Max8Ux16 = 82528,   718     Iop_Max8Ux16 = 82528,
719     Iop_Max16Ux8 = 82529,   719     Iop_Max16Ux8 = 82529,
720     Iop_Max32Ux4 = 82530,   720     Iop_Max32Ux4 = 82530,
721     Iop_Min8Sx16 = 82531,   721     Iop_Min8Sx16 = 82531,
722     Iop_Min16Sx8 = 82532,   722     Iop_Min16Sx8 = 82532,
723     Iop_Min32Sx4 = 82533,   723     Iop_Min32Sx4 = 82533,
724     Iop_Min8Ux16 = 82534,   724     Iop_Min8Ux16 = 82534,
725     Iop_Min16Ux8 = 82535,   725     Iop_Min16Ux8 = 82535,
726     Iop_Min32Ux4 = 82536,   726     Iop_Min32Ux4 = 82536,
727     Iop_CmpEQ8x16 = 82537,   727     Iop_CmpEQ8x16 = 82537,
728     Iop_CmpEQ16x8 = 82538,   728     Iop_CmpEQ16x8 = 82538,
729     Iop_CmpEQ32x4 = 82539,   729     Iop_CmpEQ32x4 = 82539,
730     Iop_CmpGT8Sx16 = 82540,   730     Iop_CmpGT8Sx16 = 82540,
731     Iop_CmpGT16Sx8 = 82541,   731     Iop_CmpGT16Sx8 = 82541,
732     Iop_CmpGT32Sx4 = 82542,   732     Iop_CmpGT32Sx4 = 82542,
733     Iop_CmpGT64Sx2 = 82543,   733     Iop_CmpGT64Sx2 = 82543,
734     Iop_CmpGT8Ux16 = 82544,   734     Iop_CmpGT8Ux16 = 82544,
735     Iop_CmpGT16Ux8 = 82545,   735     Iop_CmpGT16Ux8 = 82545,
736     Iop_CmpGT32Ux4 = 82546,   736     Iop_CmpGT32Ux4 = 82546,
737     Iop_Cnt8x16 = 82547,   737     Iop_Cnt8x16 = 82547,
738     Iop_Clz8Sx16 = 82548,   738     Iop_Clz8Sx16 = 82548,
739     Iop_Clz16Sx8 = 82549,   739     Iop_Clz16Sx8 = 82549,
740     Iop_Clz32Sx4 = 82550,   740     Iop_Clz32Sx4 = 82550,
741     Iop_Cls8Sx16 = 82551,   741     Iop_Cls8Sx16 = 82551,
742     Iop_Cls16Sx8 = 82552,   742     Iop_Cls16Sx8 = 82552,
743     Iop_Cls32Sx4 = 82553,   743     Iop_Cls32Sx4 = 82553,
744     Iop_ShlN8x16 = 82554,   744     Iop_ShlN8x16 = 82554,
745     Iop_ShlN16x8 = 82555,   745     Iop_ShlN16x8 = 82555,
746     Iop_ShlN32x4 = 82556,   746     Iop_ShlN32x4 = 82556,
747     Iop_ShlN64x2 = 82557,   747     Iop_ShlN64x2 = 82557,
748     Iop_ShrN8x16 = 82558,   748     Iop_ShrN8x16 = 82558,
749     Iop_ShrN16x8 = 82559,   749     Iop_ShrN16x8 = 82559,
750     Iop_ShrN32x4 = 82560,   750     Iop_ShrN32x4 = 82560,
751     Iop_ShrN64x2 = 82561,   751     Iop_ShrN64x2 = 82561,
752     Iop_SarN8x16 = 82562,   752     Iop_SarN8x16 = 82562,
753     Iop_SarN16x8 = 82563,   753     Iop_SarN16x8 = 82563,
754     Iop_SarN32x4 = 82564,   754     Iop_SarN32x4 = 82564,
755     Iop_SarN64x2 = 82565,   755     Iop_SarN64x2 = 82565,
756     Iop_Shl8x16 = 82566,   756     Iop_Shl8x16 = 82566,
757     Iop_Shl16x8 = 82567,   757     Iop_Shl16x8 = 82567,
758     Iop_Shl32x4 = 82568,   758     Iop_Shl32x4 = 82568,
759     Iop_Shl64x2 = 82569,   759     Iop_Shl64x2 = 82569,
760     Iop_Shr8x16 = 82570,   760     Iop_Shr8x16 = 82570,
761     Iop_Shr16x8 = 82571,   761     Iop_Shr16x8 = 82571,
762     Iop_Shr32x4 = 82572,   762     Iop_Shr32x4 = 82572,
763     Iop_Shr64x2 = 82573,   763     Iop_Shr64x2 = 82573,
764     Iop_Sar8x16 = 82574,   764     Iop_Sar8x16 = 82574,
765     Iop_Sar16x8 = 82575,   765     Iop_Sar16x8 = 82575,
766     Iop_Sar32x4 = 82576,   766     Iop_Sar32x4 = 82576,
767     Iop_Sar64x2 = 82577,   767     Iop_Sar64x2 = 82577,
768     Iop_Sal8x16 = 82578,   768     Iop_Sal8x16 = 82578,
769     Iop_Sal16x8 = 82579,   769     Iop_Sal16x8 = 82579,
770     Iop_Sal32x4 = 82580,   770     Iop_Sal32x4 = 82580,
771     Iop_Sal64x2 = 82581,   771     Iop_Sal64x2 = 82581,
772     Iop_Rol8x16 = 82582,   772     Iop_Rol8x16 = 82582,
773     Iop_Rol16x8 = 82583,   773     Iop_Rol16x8 = 82583,
774     Iop_Rol32x4 = 82584,   774     Iop_Rol32x4 = 82584,
775     Iop_QShl8x16 = 82585,   775     Iop_QShl8x16 = 82585,
776     Iop_QShl16x8 = 82586,   776     Iop_QShl16x8 = 82586,
777     Iop_QShl32x4 = 82587,   777     Iop_QShl32x4 = 82587,
778     Iop_QShl64x2 = 82588,   778     Iop_QShl64x2 = 82588,
779     Iop_QSal8x16 = 82589,   779     Iop_QSal8x16 = 82589,
780     Iop_QSal16x8 = 82590,   780     Iop_QSal16x8 = 82590,
781     Iop_QSal32x4 = 82591,   781     Iop_QSal32x4 = 82591,
782     Iop_QSal64x2 = 82592,   782     Iop_QSal64x2 = 82592,
783     Iop_QShlN8Sx16 = 82593,   783     Iop_QShlN8Sx16 = 82593,
784     Iop_QShlN16Sx8 = 82594,   784     Iop_QShlN16Sx8 = 82594,
785     Iop_QShlN32Sx4 = 82595,   785     Iop_QShlN32Sx4 = 82595,
786     Iop_QShlN64Sx2 = 82596,   786     Iop_QShlN64Sx2 = 82596,
787     Iop_QShlN8x16 = 82597,   787     Iop_QShlN8x16 = 82597,
788     Iop_QShlN16x8 = 82598,   788     Iop_QShlN16x8 = 82598,
789     Iop_QShlN32x4 = 82599,   789     Iop_QShlN32x4 = 82599,
790     Iop_QShlN64x2 = 82600,   790     Iop_QShlN64x2 = 82600,
791     Iop_QSalN8x16 = 82601,   791     Iop_QSalN8x16 = 82601,
792     Iop_QSalN16x8 = 82602,   792     Iop_QSalN16x8 = 82602,
793     Iop_QSalN32x4 = 82603,   793     Iop_QSalN32x4 = 82603,
794     Iop_QSalN64x2 = 82604,   794     Iop_QSalN64x2 = 82604,
795     Iop_QNarrowBin16Sto8Ux16 = 82605,   795     Iop_QNarrowBin16Sto8Ux16 = 82605,
796     Iop_QNarrowBin32Sto16Ux8 = 82606,   796     Iop_QNarrowBin32Sto16Ux8 = 82606,
797     Iop_QNarrowBin16Sto8Sx16 = 82607,   797     Iop_QNarrowBin16Sto8Sx16 = 82607,
798     Iop_QNarrowBin32Sto16Sx8 = 82608,   798     Iop_QNarrowBin32Sto16Sx8 = 82608,
799     Iop_QNarrowBin16Uto8Ux16 = 82609,   799     Iop_QNarrowBin16Uto8Ux16 = 82609,
800     Iop_QNarrowBin32Uto16Ux8 = 82610,   800     Iop_QNarrowBin32Uto16Ux8 = 82610,
801     Iop_NarrowBin16to8x16 = 82611,   801     Iop_NarrowBin16to8x16 = 82611,
802     Iop_NarrowBin32to16x8 = 82612,   802     Iop_NarrowBin32to16x8 = 82612,
803     Iop_NarrowUn16to8x8 = 82613,   803     Iop_NarrowUn16to8x8 = 82613,
804     Iop_NarrowUn32to16x4 = 82614,   804     Iop_NarrowUn32to16x4 = 82614,
805     Iop_NarrowUn64to32x2 = 82615,   805     Iop_NarrowUn64to32x2 = 82615,
806     Iop_QNarrowUn16Sto8Sx8 = 82616,   806     Iop_QNarrowUn16Sto8Sx8 = 82616,
807     Iop_QNarrowUn32Sto16Sx4 = 82617,   807     Iop_QNarrowUn32Sto16Sx4 = 82617,
808     Iop_QNarrowUn64Sto32Sx2 = 82618,   808     Iop_QNarrowUn64Sto32Sx2 = 82618,
809     Iop_QNarrowUn16Sto8Ux8 = 82619,   809     Iop_QNarrowUn16Sto8Ux8 = 82619,
810     Iop_QNarrowUn32Sto16Ux4 = 82620,   810     Iop_QNarrowUn32Sto16Ux4 = 82620,
811     Iop_QNarrowUn64Sto32Ux2 = 82621,   811     Iop_QNarrowUn64Sto32Ux2 = 82621,
812     Iop_QNarrowUn16Uto8Ux8 = 82622,   812     Iop_QNarrowUn16Uto8Ux8 = 82622,
813     Iop_QNarrowUn32Uto16Ux4 = 82623,   813     Iop_QNarrowUn32Uto16Ux4 = 82623,
814     Iop_QNarrowUn64Uto32Ux2 = 82624,   814     Iop_QNarrowUn64Uto32Ux2 = 82624,
815     Iop_Widen8Uto16x8 = 82625,   815     Iop_Widen8Uto16x8 = 82625,
816     Iop_Widen16Uto32x4 = 82626,   816     Iop_Widen16Uto32x4 = 82626,
817     Iop_Widen32Uto64x2 = 82627,   817     Iop_Widen32Uto64x2 = 82627,
818     Iop_Widen8Sto16x8 = 82628,   818     Iop_Widen8Sto16x8 = 82628,
819     Iop_Widen16Sto32x4 = 82629,   819     Iop_Widen16Sto32x4 = 82629,
820     Iop_Widen32Sto64x2 = 82630,   820     Iop_Widen32Sto64x2 = 82630,
821     Iop_InterleaveHI8x16 = 82631,   821     Iop_InterleaveHI8x16 = 82631,
822     Iop_InterleaveHI16x8 = 82632,   822     Iop_InterleaveHI16x8 = 82632,
823     Iop_InterleaveHI32x4 = 82633,   823     Iop_InterleaveHI32x4 = 82633,
824     Iop_InterleaveHI64x2 = 82634,   824     Iop_InterleaveHI64x2 = 82634,
825     Iop_InterleaveLO8x16 = 82635,   825     Iop_InterleaveLO8x16 = 82635,
826     Iop_InterleaveLO16x8 = 82636,   826     Iop_InterleaveLO16x8 = 82636,
827     Iop_InterleaveLO32x4 = 82637,   827     Iop_InterleaveLO32x4 = 82637,
828     Iop_InterleaveLO64x2 = 82638,   828     Iop_InterleaveLO64x2 = 82638,
829     Iop_InterleaveOddLanes8x16 = 82639,   829     Iop_InterleaveOddLanes8x16 = 82639,
830     Iop_InterleaveEvenLanes8x16 = 82640,   830     Iop_InterleaveEvenLanes8x16 = 82640,
831     Iop_InterleaveOddLanes16x8 = 82641,   831     Iop_InterleaveOddLanes16x8 = 82641,
832     Iop_InterleaveEvenLanes16x8 = 82642,   832     Iop_InterleaveEvenLanes16x8 = 82642,
833     Iop_InterleaveOddLanes32x4 = 82643,   833     Iop_InterleaveOddLanes32x4 = 82643,
834     Iop_InterleaveEvenLanes32x4 = 82644,   834     Iop_InterleaveEvenLanes32x4 = 82644,
835     Iop_CatOddLanes8x16 = 82645,   835     Iop_CatOddLanes8x16 = 82645,
836     Iop_CatOddLanes16x8 = 82646,   836     Iop_CatOddLanes16x8 = 82646,
837     Iop_CatOddLanes32x4 = 82647,   837     Iop_CatOddLanes32x4 = 82647,
838     Iop_CatEvenLanes8x16 = 82648,   838     Iop_CatEvenLanes8x16 = 82648,
839     Iop_CatEvenLanes16x8 = 82649,   839     Iop_CatEvenLanes16x8 = 82649,
840     Iop_CatEvenLanes32x4 = 82650,   840     Iop_CatEvenLanes32x4 = 82650,
841     Iop_GetElem8x16 = 82651,   841     Iop_GetElem8x16 = 82651,
842     Iop_GetElem16x8 = 82652,   842     Iop_GetElem16x8 = 82652,
843     Iop_GetElem32x4 = 82653,   843     Iop_GetElem32x4 = 82653,
844     Iop_GetElem64x2 = 82654,   844     Iop_GetElem64x2 = 82654,
845     Iop_Dup8x16 = 82655,   845     Iop_Dup8x16 = 82655,
846     Iop_Dup16x8 = 82656,   846     Iop_Dup16x8 = 82656,
847     Iop_Dup32x4 = 82657,   847     Iop_Dup32x4 = 82657,
848     Iop_ExtractV128 = 82658,   848     Iop_ExtractV128 = 82658,
849     Iop_Reverse16_8x16 = 82659,   849     Iop_Reverse16_8x16 = 82659,
850     Iop_Reverse32_8x16 = 82660,   850     Iop_Reverse32_8x16 = 82660,
851     Iop_Reverse32_16x8 = 82661,   851     Iop_Reverse32_16x8 = 82661,
852     Iop_Reverse64_8x16 = 82662,   852     Iop_Reverse64_8x16 = 82662,
853     Iop_Reverse64_16x8 = 82663,   853     Iop_Reverse64_16x8 = 82663,
854     Iop_Reverse64_32x4 = 82664,   854     Iop_Reverse64_32x4 = 82664,
855     Iop_Perm8x16 = 82665,   855     Iop_Perm8x16 = 82665,
856     Iop_Recip32x4 = 82666,   856     Iop_Recip32x4 = 82666,
857     Iop_Rsqrte32x4 = 82667   857     Iop_Rsqrte32x4 = 82667
858 } ;   858 } ;
859 typedef enum __anonenum_IROp_10 IROp;   859 typedef enum __anonenum_IROp_10 IROp;
860 enum __anonenum_IRRoundingMode_11 {   860 enum __anonenum_IRRoundingMode_11 {
861     Irrm_NEAREST = 0,   861     Irrm_NEAREST = 0,
862     Irrm_NegINF = 1,   862     Irrm_NegINF = 1,
863     Irrm_PosINF = 2,   863     Irrm_PosINF = 2,
864     Irrm_ZERO = 3   864     Irrm_ZERO = 3
865 } ;   865 } ;
866 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;   866 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;
867 enum __anonenum_IRCmpF64Result_12 {   867 enum __anonenum_IRCmpF64Result_12 {
868     Ircr_UN = 69,   868     Ircr_UN = 69,
869     Ircr_LT = 1,   869     Ircr_LT = 1,
870     Ircr_GT = 0,   870     Ircr_GT = 0,
871     Ircr_EQ = 64   871     Ircr_EQ = 64
872 } ;   872 } ;
873 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;   873 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;
874 typedef IRCmpF64Result IRCmpF32Result;   874 typedef IRCmpF64Result IRCmpF32Result;
875 typedef IRCmpF64Result IRCmpF128Result;   875 typedef IRCmpF64Result IRCmpF128Result;
876 enum __anonenum_IRExprTag_13 {   876 enum __anonenum_IRExprTag_13 {
877     Iex_Binder = 86016,   877     Iex_Binder = 86016,
878     Iex_Get = 86017,   878     Iex_Get = 86017,
879     Iex_GetI = 86018,   879     Iex_GetI = 86018,
880     Iex_RdTmp = 86019,   880     Iex_RdTmp = 86019,
881     Iex_Qop = 86020,   881     Iex_Qop = 86020,
882     Iex_Triop = 86021,   882     Iex_Triop = 86021,
883     Iex_Binop = 86022,   883     Iex_Binop = 86022,
884     Iex_Unop = 86023,   884     Iex_Unop = 86023,
885     Iex_Load = 86024,   885     Iex_Load = 86024,
886     Iex_Const = 86025,   886     Iex_Const = 86025,
887     Iex_Mux0X = 86026,   887     Iex_Mux0X = 86026,
888     Iex_CCall = 86027   888     Iex_CCall = 86027
889 } ;   889 } ;
890 typedef enum __anonenum_IRExprTag_13 IRExprTag;   890 typedef enum __anonenum_IRExprTag_13 IRExprTag;
891 struct _IRExpr;   891 struct _IRExpr;
892 typedef struct _IRExpr IRExpr;   892 typedef struct _IRExpr IRExpr;
893 struct __anonstruct_Binder_15 {   893 struct __anonstruct_Binder_15 {
894    Int binder ;   894    Int binder ;
895 };   895 };
896 struct __anonstruct_Get_16 {   896 struct __anonstruct_Get_16 {
897    Int offset ;   897    Int offset ;
898    IRType ty ;   898    IRType ty ;
899 };   899 };
900 struct __anonstruct_GetI_17 {   900 struct __anonstruct_GetI_17 {
901    IRRegArray *descr ;   901    IRRegArray *descr ;
902    IRExpr *ix ;   902    IRExpr *ix ;
903    Int bias ;   903    Int bias ;
904 };   904 };
905 struct __anonstruct_RdTmp_18 {   905 struct __anonstruct_RdTmp_18 {
906    IRTemp tmp ;   906    IRTemp tmp ;
907 };   907 };
908 struct __anonstruct_Qop_19 {   908 struct __anonstruct_Qop_19 {
909    IROp op ;   909    IROp op ;
910    IRExpr *arg1 ;   910    IRExpr *arg1 ;
911    IRExpr *arg2 ;   911    IRExpr *arg2 ;
912    IRExpr *arg3 ;   912    IRExpr *arg3 ;
913    IRExpr *arg4 ;   913    IRExpr *arg4 ;
914 };   914 };
915 struct __anonstruct_Triop_20 {   915 struct __anonstruct_Triop_20 {
916    IROp op ;   916    IROp op ;
917    IRExpr *arg1 ;   917    IRExpr *arg1 ;
918    IRExpr *arg2 ;   918    IRExpr *arg2 ;
919    IRExpr *arg3 ;   919    IRExpr *arg3 ;
920 };   920 };
921 struct __anonstruct_Binop_21 {   921 struct __anonstruct_Binop_21 {
922    IROp op ;   922    IROp op ;
923    IRExpr *arg1 ;   923    IRExpr *arg1 ;
924    IRExpr *arg2 ;   924    IRExpr *arg2 ;
925 };   925 };
926 struct __anonstruct_Unop_22 {   926 struct __anonstruct_Unop_22 {
927    IROp op ;   927    IROp op ;
928    IRExpr *arg ;   928    IRExpr *arg ;
929 };   929 };
930 struct __anonstruct_Load_23 {   930 struct __anonstruct_Load_23 {
931    IREndness end ;   931    IREndness end ;
932    IRType ty ;   932    IRType ty ;
933    IRExpr *addr ;   933    IRExpr *addr ;
934 };   934 };
935 struct __anonstruct_Const_24 {   935 struct __anonstruct_Const_24 {
936    IRConst *con ;   936    IRConst *con ;
937 };   937 };
938 struct __anonstruct_CCall_25 {   938 struct __anonstruct_CCall_25 {
939    IRCallee *cee ;   939    IRCallee *cee ;
940    IRType retty ;   940    IRType retty ;
941    IRExpr **args ;   941    IRExpr **args ;
942 };   942 };
943 struct __anonstruct_Mux0X_26 {   943 struct __anonstruct_Mux0X_26 {
944    IRExpr *cond ;   944    IRExpr *cond ;
945    IRExpr *expr0 ;   945    IRExpr *expr0 ;
946    IRExpr *exprX ;   946    IRExpr *exprX ;
947 };   947 };
948 union __anonunion_Iex_14 {   948 union __anonunion_Iex_14 {
949    struct __anonstruct_Binder_15 Binder ;   949    struct __anonstruct_Binder_15 Binder ;
950    struct __anonstruct_Get_16 Get ;   950    struct __anonstruct_Get_16 Get ;
951    struct __anonstruct_GetI_17 GetI ;   951    struct __anonstruct_GetI_17 GetI ;
952    struct __anonstruct_RdTmp_18 RdTmp ;   952    struct __anonstruct_RdTmp_18 RdTmp ;
953    struct __anonstruct_Qop_19 Qop ;   953    struct __anonstruct_Qop_19 Qop ;
954    struct __anonstruct_Triop_20 Triop ;   954    struct __anonstruct_Triop_20 Triop ;
955    struct __anonstruct_Binop_21 Binop ;   955    struct __anonstruct_Binop_21 Binop ;
956    struct __anonstruct_Unop_22 Unop ;   956    struct __anonstruct_Unop_22 Unop ;
957    struct __anonstruct_Load_23 Load ;   957    struct __anonstruct_Load_23 Load ;
958    struct __anonstruct_Const_24 Const ;   958    struct __anonstruct_Const_24 Const ;
959    struct __anonstruct_CCall_25 CCall ;   959    struct __anonstruct_CCall_25 CCall ;
960    struct __anonstruct_Mux0X_26 Mux0X ;   960    struct __anonstruct_Mux0X_26 Mux0X ;
961 };   961 };
962 struct _IRExpr {   962 struct _IRExpr {
963    IRExprTag tag ;   963    IRExprTag tag ;
964    union __anonunion_Iex_14 Iex ;   964    union __anonunion_Iex_14 Iex ;
965 };   965 };
966 enum __anonenum_IRJumpKind_27 {   966 enum __anonenum_IRJumpKind_27 {
967     Ijk_Boring = 90112,   967     Ijk_Boring = 90112,
968     Ijk_Call = 90113,   968     Ijk_Call = 90113,
969     Ijk_Ret = 90114,   969     Ijk_Ret = 90114,
970     Ijk_ClientReq = 90115,   970     Ijk_ClientReq = 90115,
971     Ijk_Yield = 90116,   971     Ijk_Yield = 90116,
972     Ijk_EmWarn = 90117,   972     Ijk_EmWarn = 90117,
973     Ijk_EmFail = 90118,   973     Ijk_EmFail = 90118,
974     Ijk_NoDecode = 90119,   974     Ijk_NoDecode = 90119,
975     Ijk_MapFail = 90120,   975     Ijk_MapFail = 90120,
976     Ijk_TInval = 90121,   976     Ijk_TInval = 90121,
977     Ijk_NoRedir = 90122,   977     Ijk_NoRedir = 90122,
978     Ijk_SigTRAP = 90123,   978     Ijk_SigTRAP = 90123,
979     Ijk_SigSEGV = 90124,   979     Ijk_SigSEGV = 90124,
980     Ijk_SigBUS = 90125,   980     Ijk_SigBUS = 90125,
981     Ijk_Sys_syscall = 90126,   981     Ijk_Sys_syscall = 90126,
982     Ijk_Sys_int32 = 90127,   982     Ijk_Sys_int32 = 90127,
983     Ijk_Sys_int128 = 90128,   983     Ijk_Sys_int128 = 90128,
984     Ijk_Sys_int129 = 90129,   984     Ijk_Sys_int129 = 90129,
985     Ijk_Sys_int130 = 90130,   985     Ijk_Sys_int130 = 90130,
986     Ijk_Sys_sysenter = 90131   986     Ijk_Sys_sysenter = 90131
987 } ;   987 } ;
988 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;   988 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;
989 enum __anonenum_IREffect_28 {   989 enum __anonenum_IREffect_28 {
990     Ifx_None = 94208,   990     Ifx_None = 94208,
991     Ifx_Read = 94209,   991     Ifx_Read = 94209,
992     Ifx_Write = 94210,   992     Ifx_Write = 94210,
993     Ifx_Modify = 94211   993     Ifx_Modify = 94211
994 } ;   994 } ;
995 typedef enum __anonenum_IREffect_28 IREffect;   995 typedef enum __anonenum_IREffect_28 IREffect;
996 struct __anonstruct_fxState_30 {   996 struct __anonstruct_fxState_30 {
997    IREffect fx ;   997    IREffect fx ;
998    Int offset ;   998    Int offset ;
999    Int size ;   999    Int size ;
1000 };   1000 };
1001 struct __anonstruct_IRDirty_29 {   1001 struct __anonstruct_IRDirty_29 {
1002    IRCallee *cee ;   1002    IRCallee *cee ;
1003    IRExpr *guard ;   1003    IRExpr *guard ;
1004    IRExpr **args ;   1004    IRExpr **args ;
1005    IRTemp tmp ;   1005    IRTemp tmp ;
1006    IREffect mFx ;   1006    IREffect mFx ;
1007    IRExpr *mAddr ;   1007    IRExpr *mAddr ;
1008    Int mSize ;   1008    Int mSize ;
1009    Bool needsBBP ;   1009    Bool needsBBP ;
1010    Int nFxState ;   1010    Int nFxState ;
1011    struct __anonstruct_fxState_30 fxState[7] ;   1011    struct __anonstruct_fxState_30 fxState[7] ;
1012 };   1012 };
1013 typedef struct __anonstruct_IRDirty_29 IRDirty;   1013 typedef struct __anonstruct_IRDirty_29 IRDirty;
1014 enum __anonenum_IRMBusEvent_31 {   1014 enum __anonenum_IRMBusEvent_31 {
1015     Imbe_Fence = 98304   1015     Imbe_Fence = 98304
1016 } ;   1016 } ;
1017 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;   1017 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;
1018 struct __anonstruct_IRCAS_32 {   1018 struct __anonstruct_IRCAS_32 {
1019    IRTemp oldHi ;   1019    IRTemp oldHi ;
1020    IRTemp oldLo ;   1020    IRTemp oldLo ;
1021    IREndness end ;   1021    IREndness end ;
1022    IRExpr *addr ;   1022    IRExpr *addr ;
1023    IRExpr *expdHi ;   1023    IRExpr *expdHi ;
1024    IRExpr *expdLo ;   1024    IRExpr *expdLo ;
1025    IRExpr *dataHi ;   1025    IRExpr *dataHi ;
1026    IRExpr *dataLo ;   1026    IRExpr *dataLo ;
1027 };   1027 };
1028 typedef struct __anonstruct_IRCAS_32 IRCAS;   1028 typedef struct __anonstruct_IRCAS_32 IRCAS;
1029 enum __anonenum_IRStmtTag_33 {   1029 enum __anonenum_IRStmtTag_33 {
1030     Ist_NoOp = 102400,   1030     Ist_NoOp = 102400,
1031     Ist_IMark = 102401,   1031     Ist_IMark = 102401,
1032     Ist_AbiHint = 102402,   1032     Ist_AbiHint = 102402,
1033     Ist_Put = 102403,   1033     Ist_Put = 102403,
1034     Ist_PutI = 102404,   1034     Ist_PutI = 102404,
1035     Ist_WrTmp = 102405,   1035     Ist_WrTmp = 102405,
1036     Ist_Store = 102406,   1036     Ist_Store = 102406,
1037     Ist_CAS = 102407,   1037     Ist_CAS = 102407,
1038     Ist_LLSC = 102408,   1038     Ist_LLSC = 102408,
1039     Ist_Dirty = 102409,   1039     Ist_Dirty = 102409,
1040     Ist_MBE = 102410,   1040     Ist_MBE = 102410,
1041     Ist_Exit = 102411   1041     Ist_Exit = 102411
1042 } ;   1042 } ;
1043 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;   1043 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;
1044 struct __anonstruct_NoOp_35 {   1044 struct __anonstruct_NoOp_35 {
1045     1045  
1046 };   1046 };
1047 struct __anonstruct_IMark_36 {   1047 struct __anonstruct_IMark_36 {
1048    Addr64 addr ;   1048    Addr64 addr ;
1049    Int len ;   1049    Int len ;
1050    UChar delta ;   1050    UChar delta ;
1051 };   1051 };
1052 struct __anonstruct_AbiHint_37 {   1052 struct __anonstruct_AbiHint_37 {
1053    IRExpr *base ;   1053    IRExpr *base ;
1054    Int len ;   1054    Int len ;
1055    IRExpr *nia ;   1055    IRExpr *nia ;
1056 };   1056 };
1057 struct __anonstruct_Put_38 {   1057 struct __anonstruct_Put_38 {
1058    Int offset ;   1058    Int offset ;
1059    IRExpr *data ;   1059    IRExpr *data ;
1060 };   1060 };
1061 struct __anonstruct_PutI_39 {   1061 struct __anonstruct_PutI_39 {
1062    IRRegArray *descr ;   1062    IRRegArray *descr ;
1063    IRExpr *ix ;   1063    IRExpr *ix ;
1064    Int bias ;   1064    Int bias ;
1065    IRExpr *data ;   1065    IRExpr *data ;
1066 };   1066 };
1067 struct __anonstruct_WrTmp_40 {   1067 struct __anonstruct_WrTmp_40 {
1068    IRTemp tmp ;   1068    IRTemp tmp ;
1069    IRExpr *data ;   1069    IRExpr *data ;
1070 };   1070 };
1071 struct __anonstruct_Store_41 {   1071 struct __anonstruct_Store_41 {
1072    IREndness end ;   1072    IREndness end ;
1073    IRExpr *addr ;   1073    IRExpr *addr ;
1074    IRExpr *data ;   1074    IRExpr *data ;
1075 };   1075 };
1076 struct __anonstruct_CAS_42 {   1076 struct __anonstruct_CAS_42 {
1077    IRCAS *details ;   1077    IRCAS *details ;
1078 };   1078 };
1079 struct __anonstruct_LLSC_43 {   1079 struct __anonstruct_LLSC_43 {
1080    IREndness end ;   1080    IREndness end ;
1081    IRTemp result ;   1081    IRTemp result ;
1082    IRExpr *addr ;   1082    IRExpr *addr ;
1083    IRExpr *storedata ;   1083    IRExpr *storedata ;
1084 };   1084 };
1085 struct __anonstruct_Dirty_44 {   1085 struct __anonstruct_Dirty_44 {
1086    IRDirty *details ;   1086    IRDirty *details ;
1087 };   1087 };
1088 struct __anonstruct_MBE_45 {   1088 struct __anonstruct_MBE_45 {
1089    IRMBusEvent event ;   1089    IRMBusEvent event ;
1090 };   1090 };
1091 struct __anonstruct_Exit_46 {   1091 struct __anonstruct_Exit_46 {
1092    IRExpr *guard ;   1092    IRExpr *guard ;
1093    IRJumpKind jk ;   1093    IRJumpKind jk ;
1094    IRConst *dst ;   1094    IRConst *dst ;
1095 };   1095 };
1096 union __anonunion_Ist_34 {   1096 union __anonunion_Ist_34 {
1097    struct __anonstruct_NoOp_35 NoOp ;   1097    struct __anonstruct_NoOp_35 NoOp ;
1098    struct __anonstruct_IMark_36 IMark ;   1098    struct __anonstruct_IMark_36 IMark ;
1099    struct __anonstruct_AbiHint_37 AbiHint ;   1099    struct __anonstruct_AbiHint_37 AbiHint ;
1100    struct __anonstruct_Put_38 Put ;   1100    struct __anonstruct_Put_38 Put ;
1101    struct __anonstruct_PutI_39 PutI ;   1101    struct __anonstruct_PutI_39 PutI ;
1102    struct __anonstruct_WrTmp_40 WrTmp ;   1102    struct __anonstruct_WrTmp_40 WrTmp ;
1103    struct __anonstruct_Store_41 Store ;   1103    struct __anonstruct_Store_41 Store ;
1104    struct __anonstruct_CAS_42 CAS ;   1104    struct __anonstruct_CAS_42 CAS ;
1105    struct __anonstruct_LLSC_43 LLSC ;   1105    struct __anonstruct_LLSC_43 LLSC ;
1106    struct __anonstruct_Dirty_44 Dirty ;   1106    struct __anonstruct_Dirty_44 Dirty ;
1107    struct __anonstruct_MBE_45 MBE ;   1107    struct __anonstruct_MBE_45 MBE ;
1108    struct __anonstruct_Exit_46 Exit ;   1108    struct __anonstruct_Exit_46 Exit ;
1109 };   1109 };
1110 struct _IRStmt {   1110 struct _IRStmt {
1111    IRStmtTag tag ;   1111    IRStmtTag tag ;
1112    union __anonunion_Ist_34 Ist ;   1112    union __anonunion_Ist_34 Ist ;
1113 };   1113 };
1114 typedef struct _IRStmt IRStmt;   1114 typedef struct _IRStmt IRStmt;
1115 struct __anonstruct_IRTypeEnv_47 {   1115 struct __anonstruct_IRTypeEnv_47 {
1116    IRType *types ;   1116    IRType *types ;
1117    Int types_size ;   1117    Int types_size ;
1118    Int types_used ;   1118    Int types_used ;
1119 };   1119 };
1120 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;   1120 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;
1121 struct __anonstruct_IRSB_48 {   1121 struct __anonstruct_IRSB_48 {
1122    IRTypeEnv *tyenv ;   1122    IRTypeEnv *tyenv ;
1123    IRStmt **stmts ;   1123    IRStmt **stmts ;
1124    Int stmts_size ;   1124    Int stmts_size ;
1125    Int stmts_used ;   1125    Int stmts_used ;
1126    IRExpr *next ;   1126    IRExpr *next ;
1127    IRJumpKind jumpkind ;   1127    IRJumpKind jumpkind ;
1128 };   1128 };
1129 typedef struct __anonstruct_IRSB_48 IRSB;   1129 typedef struct __anonstruct_IRSB_48 IRSB;
1130 enum __anonenum_VexArch_49 {   1130 enum __anonenum_VexArch_49 {
1131     VexArch_INVALID = 0,   1131     VexArch_INVALID = 0,
1132     VexArchX86 = 1,   1132     VexArchX86 = 1,
1133     VexArchAMD64 = 2,   1133     VexArchAMD64 = 2,
1134     VexArchARM = 3,   1134     VexArchARM = 3,
1135     VexArchPPC32 = 4,   1135     VexArchPPC32 = 4,
1136     VexArchPPC64 = 5,   1136     VexArchPPC64 = 5,
1137     VexArchS390X = 6   1137     VexArchS390X = 6
1138 } ;   1138 } ;
1139 typedef enum __anonenum_VexArch_49 VexArch;   1139 typedef enum __anonenum_VexArch_49 VexArch;
1140 struct __anonstruct_VexArchInfo_50 {   1140 struct __anonstruct_VexArchInfo_50 {
1141    UInt hwcaps ;   1141    UInt hwcaps ;
1142    Int ppc_cache_line_szB ;   1142    Int ppc_cache_line_szB ;
1143    UInt ppc_dcbz_szB ;   1143    UInt ppc_dcbz_szB ;
1144    UInt ppc_dcbzl_szB ;   1144    UInt ppc_dcbzl_szB ;
1145 };   1145 };
1146 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;   1146 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;
1147 struct __anonstruct_VexAbiInfo_51 {   1147 struct __anonstruct_VexAbiInfo_51 {
1148    Int guest_stack_redzone_size ;   1148    Int guest_stack_redzone_size ;
1149    Bool guest_amd64_assume_fs_is_zero ;   1149    Bool guest_amd64_assume_fs_is_zero ;
1150    Bool guest_amd64_assume_gs_is_0x60 ;   1150    Bool guest_amd64_assume_gs_is_0x60 ;
1151    Bool guest_ppc_zap_RZ_at_blr ;   1151    Bool guest_ppc_zap_RZ_at_blr ;
1152    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;   1152    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;
1153    Bool guest_ppc_sc_continues_at_LR ;   1153    Bool guest_ppc_sc_continues_at_LR ;
1154    Bool host_ppc_calls_use_fndescrs ;   1154    Bool host_ppc_calls_use_fndescrs ;
1155    Bool host_ppc32_regalign_int64_args ;   1155    Bool host_ppc32_regalign_int64_args ;
1156 };   1156 };
1157 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;   1157 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;
1158 struct __anonstruct_VexControl_52 {   1158 struct __anonstruct_VexControl_52 {
1159    Int iropt_verbosity ;   1159    Int iropt_verbosity ;
1160    Int iropt_level ;   1160    Int iropt_level ;
1161    Bool iropt_precise_memory_exns ;   1161    Bool iropt_precise_memory_exns ;
1162    Int iropt_unroll_thresh ;   1162    Int iropt_unroll_thresh ;
1163    Int guest_max_insns ;   1163    Int guest_max_insns ;
1164    Int guest_chase_thresh ;   1164    Int guest_chase_thresh ;
1165    Bool guest_chase_cond ;   1165    Bool guest_chase_cond ;
1166 };   1166 };
1167 typedef struct __anonstruct_VexControl_52 VexControl;   1167 typedef struct __anonstruct_VexControl_52 VexControl;
1168 struct __anonstruct_alwaysDefd_54 {   1168 struct __anonstruct_alwaysDefd_54 {
1169    Int offset ;   1169    Int offset ;
1170    Int size ;   1170    Int size ;
1171 };   1171 };
1172 struct __anonstruct_VexGuestLayout_53 {   1172 struct __anonstruct_VexGuestLayout_53 {
1173    Int total_sizeB ;   1173    Int total_sizeB ;
1174    Int offset_SP ;   1174    Int offset_SP ;
1175    Int sizeof_SP ;   1175    Int sizeof_SP ;
1176    Int offset_FP ;   1176    Int offset_FP ;
1177    Int sizeof_FP ;   1177    Int sizeof_FP ;
1178    Int offset_IP ;   1178    Int offset_IP ;
1179    Int sizeof_IP ;   1179    Int sizeof_IP ;
1180    Int n_alwaysDefd ;   1180    Int n_alwaysDefd ;
1181    struct __anonstruct_alwaysDefd_54 alwaysDefd[24] ;   1181    struct __anonstruct_alwaysDefd_54 alwaysDefd[24] ;
1182 };   1182 };
1183 typedef struct __anonstruct_VexGuestLayout_53 VexGuestLayout;   1183 typedef struct __anonstruct_VexGuestLayout_53 VexGuestLayout;
1184 enum __anonenum_status_56 {   1184 enum __anonenum_status_56 {
1185     VexTransOK = 0,   1185     VexTransOK = 0,
1186     VexTransAccessFail = 1,   1186     VexTransAccessFail = 1,
1187     VexTransOutputFull = 2   1187     VexTransOutputFull = 2
1188 } ;   1188 } ;
1189 struct __anonstruct_VexTranslateResult_55 {   1189 struct __anonstruct_VexTranslateResult_55 {
1190    enum __anonenum_status_56 status ;   1190    enum __anonenum_status_56 status ;
1191    UInt n_sc_extents ;   1191    UInt n_sc_extents ;
1192 };   1192 };
1193 typedef struct __anonstruct_VexTranslateResult_55 VexTranslateResult;   1193 typedef struct __anonstruct_VexTranslateResult_55 VexTranslateResult;
1194 struct __anonstruct_VexGuestExtents_57 {   1194 struct __anonstruct_VexGuestExtents_57 {
1195    Addr64 base[3] ;   1195    Addr64 base[3] ;
1196    UShort len[3] ;   1196    UShort len[3] ;
1197    UShort n_used ;   1197    UShort n_used ;
1198 };   1198 };
1199 typedef struct __anonstruct_VexGuestExtents_57 VexGuestExtents;   1199 typedef struct __anonstruct_VexGuestExtents_57 VexGuestExtents;
1200 struct __anonstruct_VexTranslateArgs_58 {   1200 struct __anonstruct_VexTranslateArgs_58 {
1201    VexArch arch_guest ;   1201    VexArch arch_guest ;
1202    VexArchInfo archinfo_guest ;   1202    VexArchInfo archinfo_guest ;
1203    VexArch arch_host ;   1203    VexArch arch_host ;
1204    VexArchInfo archinfo_host ;   1204    VexArchInfo archinfo_host ;
1205    VexAbiInfo abiinfo_both ;   1205    VexAbiInfo abiinfo_both ;
1206    void *callback_opaque ;   1206    void *callback_opaque ;
1207    UChar *guest_bytes ;   1207    UChar *guest_bytes ;
1208    Addr64 guest_bytes_addr ;   1208    Addr64 guest_bytes_addr ;
1209    Bool (*chase_into_ok)(void * , Addr64  ) ;   1209    Bool (*chase_into_ok)(void * , Addr64  ) ;
1210    VexGuestExtents *guest_extents ;   1210    VexGuestExtents *guest_extents ;
1211    UChar *host_bytes ;   1211    UChar *host_bytes ;
1212    Int host_bytes_size ;   1212    Int host_bytes_size ;
1213    Int *host_bytes_used ;   1213    Int *host_bytes_used ;
1214    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1214    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1215                         IRType gWordTy , IRType hWordTy ) ;   1215                         IRType gWordTy , IRType hWordTy ) ;
1216    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1216    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1217                         IRType gWordTy , IRType hWordTy ) ;   1217                         IRType gWordTy , IRType hWordTy ) ;
1218    IRSB *(*finaltidy)(IRSB * ) ;   1218    IRSB *(*finaltidy)(IRSB * ) ;
1219    UInt (*needs_self_check)(void * , VexGuestExtents * ) ;   1219    UInt (*needs_self_check)(void * , VexGuestExtents * ) ;
1220    Bool (*preamble_function)(void * , IRSB * ) ;   1220    Bool (*preamble_function)(void * , IRSB * ) ;
1221    Int traceflags ;   1221    Int traceflags ;
1222    void *dispatch_unassisted ;   1222    void *dispatch_unassisted ;
1223    void *dispatch_assisted ;   1223    void *dispatch_assisted ;
1224 };   1224 };
1225 typedef struct __anonstruct_VexTranslateArgs_58 VexTranslateArgs;   1225 typedef struct __anonstruct_VexTranslateArgs_58 VexTranslateArgs;
1226 enum __anonenum_VexEmWarn_59 {   1226 enum __anonenum_VexEmWarn_59 {
1227     EmWarn_NONE = 0,   1227     EmWarn_NONE = 0,
1228     EmWarn_X86_x87exns = 1,   1228     EmWarn_X86_x87exns = 1,
1229     EmWarn_X86_x87precision = 2,   1229     EmWarn_X86_x87precision = 2,
1230     EmWarn_X86_sseExns = 3,   1230     EmWarn_X86_sseExns = 3,
1231     EmWarn_X86_fz = 4,   1231     EmWarn_X86_fz = 4,
1232     EmWarn_X86_daz = 5,   1232     EmWarn_X86_daz = 5,
1233     EmWarn_X86_acFlag = 6,   1233     EmWarn_X86_acFlag = 6,
1234     EmWarn_PPCexns = 7,   1234     EmWarn_PPCexns = 7,
1235     EmWarn_PPC64_redir_overflow = 8,   1235     EmWarn_PPC64_redir_overflow = 8,
1236     EmWarn_PPC64_redir_underflow = 9,   1236     EmWarn_PPC64_redir_underflow = 9,
1237     EmWarn_NUMBER = 10   1237     EmWarn_NUMBER = 10
1238 } ;   1238 } ;
1239 typedef enum __anonenum_VexEmWarn_59 VexEmWarn;   1239 typedef enum __anonenum_VexEmWarn_59 VexEmWarn;
1240 struct __anonstruct_VexGuestX86State_60 {   1240 struct __anonstruct_VexGuestX86State_60 {
1241    UInt guest_EAX ;   1241    UInt guest_EAX ;
1242    UInt guest_ECX ;   1242    UInt guest_ECX ;
1243    UInt guest_EDX ;   1243    UInt guest_EDX ;
1244    UInt guest_EBX ;   1244    UInt guest_EBX ;
1245    UInt guest_ESP ;   1245    UInt guest_ESP ;
1246    UInt guest_EBP ;   1246    UInt guest_EBP ;
1247    UInt guest_ESI ;   1247    UInt guest_ESI ;
1248    UInt guest_EDI ;   1248    UInt guest_EDI ;
1249    UInt guest_CC_OP ;   1249    UInt guest_CC_OP ;
1250    UInt guest_CC_DEP1 ;   1250    UInt guest_CC_DEP1 ;
1251    UInt guest_CC_DEP2 ;   1251    UInt guest_CC_DEP2 ;
1252    UInt guest_CC_NDEP ;   1252    UInt guest_CC_NDEP ;
1253    UInt guest_DFLAG ;   1253    UInt guest_DFLAG ;
1254    UInt guest_IDFLAG ;   1254    UInt guest_IDFLAG ;
1255    UInt guest_ACFLAG ;   1255    UInt guest_ACFLAG ;
1256    UInt guest_EIP ;   1256    UInt guest_EIP ;
1257    ULong guest_FPREG[8] ;   1257    ULong guest_FPREG[8] ;
1258    UChar guest_FPTAG[8] ;   1258    UChar guest_FPTAG[8] ;
1259    UInt guest_FPROUND ;   1259    UInt guest_FPROUND ;
1260    UInt guest_FC3210 ;   1260    UInt guest_FC3210 ;
1261    UInt guest_FTOP ;   1261    UInt guest_FTOP ;
1262    UInt guest_SSEROUND ;   1262    UInt guest_SSEROUND ;
1263    U128 guest_XMM0 ;   1263    U128 guest_XMM0 ;
1264    U128 guest_XMM1 ;   1264    U128 guest_XMM1 ;
1265    U128 guest_XMM2 ;   1265    U128 guest_XMM2 ;
1266    U128 guest_XMM3 ;   1266    U128 guest_XMM3 ;
1267    U128 guest_XMM4 ;   1267    U128 guest_XMM4 ;
1268    U128 guest_XMM5 ;   1268    U128 guest_XMM5 ;
1269    U128 guest_XMM6 ;   1269    U128 guest_XMM6 ;
1270    U128 guest_XMM7 ;   1270    U128 guest_XMM7 ;
1271    UShort guest_CS ;   1271    UShort guest_CS ;
1272    UShort guest_DS ;   1272    UShort guest_DS ;
1273    UShort guest_ES ;   1273    UShort guest_ES ;
1274    UShort guest_FS ;   1274    UShort guest_FS ;
1275    UShort guest_GS ;   1275    UShort guest_GS ;
1276    UShort guest_SS ;   1276    UShort guest_SS ;
1277    HWord guest_LDT ;   1277    HWord guest_LDT ;
1278    HWord guest_GDT ;   1278    HWord guest_GDT ;
1279    UInt guest_EMWARN ;   1279    UInt guest_EMWARN ;
1280    UInt guest_TISTART ;   1280    UInt guest_TISTART ;
1281    UInt guest_TILEN ;   1281    UInt guest_TILEN ;
1282    UInt guest_NRADDR ;   1282    UInt guest_NRADDR ;
1283    UInt guest_SC_CLASS ;   1283    UInt guest_SC_CLASS ;
1284    UInt guest_IP_AT_SYSCALL ;   1284    UInt guest_IP_AT_SYSCALL ;
1285    UInt padding1 ;   1285    UInt padding1 ;
1286    UInt padding2 ;   1286    UInt padding2 ;
1287    UInt padding3 ;   1287    UInt padding3 ;
1288 };   1288 };
1289 typedef struct __anonstruct_VexGuestX86State_60 VexGuestX86State;   1289 typedef struct __anonstruct_VexGuestX86State_60 VexGuestX86State;
1290 struct __anonstruct_Bits_63 {   1290 struct __anonstruct_Bits_63 {
1291    UShort LimitLow ;   1291    UShort LimitLow ;
1292    UShort BaseLow ;   1292    UShort BaseLow ;
1293    UInt BaseMid : 8 ;   1293    UInt BaseMid : 8 ;
1294    UInt Type : 5 ;   1294    UInt Type : 5 ;
1295    UInt Dpl : 2 ;   1295    UInt Dpl : 2 ;
1296    UInt Pres : 1 ;   1296    UInt Pres : 1 ;
1297    UInt LimitHi : 4 ;   1297    UInt LimitHi : 4 ;
1298    UInt Sys : 1 ;   1298    UInt Sys : 1 ;
1299    UInt Reserved_0 : 1 ;   1299    UInt Reserved_0 : 1 ;
1300    UInt Default_Big : 1 ;   1300    UInt Default_Big : 1 ;
1301    UInt Granularity : 1 ;   1301    UInt Granularity : 1 ;
1302    UInt BaseHi : 8 ;   1302    UInt BaseHi : 8 ;
1303 };   1303 };
1304 struct __anonstruct_Words_64 {   1304 struct __anonstruct_Words_64 {
1305    UInt word1 ;   1305    UInt word1 ;
1306    UInt word2 ;   1306    UInt word2 ;
1307 };   1307 };
1308 union __anonunion_LdtEnt_62 {   1308 union __anonunion_LdtEnt_62 {
1309    struct __anonstruct_Bits_63 Bits ;   1309    struct __anonstruct_Bits_63 Bits ;
1310    struct __anonstruct_Words_64 Words ;   1310    struct __anonstruct_Words_64 Words ;
1311 };   1311 };
1312 struct __anonstruct_VexGuestX86SegDescr_61 {   1312 struct __anonstruct_VexGuestX86SegDescr_61 {
1313    union __anonunion_LdtEnt_62 LdtEnt ;   1313    union __anonunion_LdtEnt_62 LdtEnt ;
1314 };   1314 };
1315 typedef struct __anonstruct_VexGuestX86SegDescr_61 VexGuestX86SegDescr;   1315 typedef struct __anonstruct_VexGuestX86SegDescr_61 VexGuestX86SegDescr;
1316 struct __anonstruct_X86_67 {   1316 struct __anonstruct_X86_67 {
1317    UInt r_ebp ;   1317    UInt r_ebp ;
1318 };   1318 };
1319 struct __anonstruct_AMD64_68 {   1319 struct __anonstruct_AMD64_68 {
1320    ULong r_rbp ;   1320    ULong r_rbp ;
1321 };   1321 };
1322 struct __anonstruct_PPC32_69 {   1322 struct __anonstruct_PPC32_69 {
1323    UInt r_lr ;   1323    UInt r_lr ;
1324 };   1324 };
1325 struct __anonstruct_PPC64_70 {   1325 struct __anonstruct_PPC64_70 {
1326    ULong r_lr ;   1326    ULong r_lr ;
1327 };   1327 };
1328 struct __anonstruct_ARM_71 {   1328 struct __anonstruct_ARM_71 {
1329    UInt r14 ;   1329    UInt r14 ;
1330    UInt r12 ;   1330    UInt r12 ;
1331    UInt r11 ;   1331    UInt r11 ;
1332    UInt r7 ;   1332    UInt r7 ;
1333 };   1333 };
1334 struct __anonstruct_S390X_72 {   1334 struct __anonstruct_S390X_72 {
1335    ULong r_fp ;   1335    ULong r_fp ;
1336    ULong r_lr ;   1336    ULong r_lr ;
1337 };   1337 };
1338 union __anonunion_misc_66 {   1338 union __anonunion_misc_66 {
1339    struct __anonstruct_X86_67 X86 ;   1339    struct __anonstruct_X86_67 X86 ;
1340    struct __anonstruct_AMD64_68 AMD64 ;   1340    struct __anonstruct_AMD64_68 AMD64 ;
1341    struct __anonstruct_PPC32_69 PPC32 ;   1341    struct __anonstruct_PPC32_69 PPC32 ;
1342    struct __anonstruct_PPC64_70 PPC64 ;   1342    struct __anonstruct_PPC64_70 PPC64 ;
1343    struct __anonstruct_ARM_71 ARM ;   1343    struct __anonstruct_ARM_71 ARM ;
1344    struct __anonstruct_S390X_72 S390X ;   1344    struct __anonstruct_S390X_72 S390X ;
1345 };   1345 };
1346 struct __anonstruct_UnwindStartRegs_65 {   1346 struct __anonstruct_UnwindStartRegs_65 {
1347    ULong r_pc ;   1347    ULong r_pc ;
1348    ULong r_sp ;   1348    ULong r_sp ;
1349    union __anonunion_misc_66 misc ;   1349    union __anonunion_misc_66 misc ;
1350 };   1350 };
1351 typedef struct __anonstruct_UnwindStartRegs_65 UnwindStartRegs;   1351 typedef struct __anonstruct_UnwindStartRegs_65 UnwindStartRegs;
1352 typedef unsigned short __vki_kernel_mode_t;   1352 typedef unsigned short __vki_kernel_mode_t;
1353 typedef long __vki_kernel_off_t;   1353 typedef long __vki_kernel_off_t;
1354 typedef int __vki_kernel_pid_t;   1354 typedef int __vki_kernel_pid_t;
1355 typedef unsigned short __vki_kernel_ipc_pid_t;   1355 typedef unsigned short __vki_kernel_ipc_pid_t;
1356 typedef unsigned short __vki_kernel_uid_t;   1356 typedef unsigned short __vki_kernel_uid_t;
1357 typedef unsigned short __vki_kernel_gid_t;   1357 typedef unsigned short __vki_kernel_gid_t;
1358 typedef unsigned int __vki_kernel_size_t;   1358 typedef unsigned int __vki_kernel_size_t;
1359 typedef long __vki_kernel_time_t;   1359 typedef long __vki_kernel_time_t;
1360 typedef long __vki_kernel_suseconds_t;   1360 typedef long __vki_kernel_suseconds_t;
1361 typedef long __vki_kernel_clock_t;   1361 typedef long __vki_kernel_clock_t;
1362 typedef int __vki_kernel_timer_t;   1362 typedef int __vki_kernel_timer_t;
1363 typedef int __vki_kernel_clockid_t;   1363 typedef int __vki_kernel_clockid_t;
1364 typedef char *__vki_kernel_caddr_t;   1364 typedef char *__vki_kernel_caddr_t;
1365 typedef unsigned int __vki_kernel_uid32_t;   1365 typedef unsigned int __vki_kernel_uid32_t;
1366 typedef unsigned int __vki_kernel_gid32_t;   1366 typedef unsigned int __vki_kernel_gid32_t;
1367 typedef unsigned short __vki_kernel_old_uid_t;   1367 typedef unsigned short __vki_kernel_old_uid_t;
1368 typedef unsigned short __vki_kernel_old_gid_t;   1368 typedef unsigned short __vki_kernel_old_gid_t;
1369 typedef long long __vki_kernel_loff_t;   1369 typedef long long __vki_kernel_loff_t;
1370 struct __anonstruct___vki_kernel_fsid_t_73 {   1370 struct __anonstruct___vki_kernel_fsid_t_73 {
1371    int val[2] ;   1371    int val[2] ;
1372 };   1372 };
1373 typedef struct __anonstruct___vki_kernel_fsid_t_73 __vki_kernel_fsid_t;   1373 typedef struct __anonstruct___vki_kernel_fsid_t_73 __vki_kernel_fsid_t;
1374 struct __anonstruct___vki_kernel_fd_set_74 {   1374 struct __anonstruct___vki_kernel_fd_set_74 {
1375    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;   1375    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;
1376 };   1376 };
1377 typedef struct __anonstruct___vki_kernel_fd_set_74 __vki_kernel_fd_set;   1377 typedef struct __anonstruct___vki_kernel_fd_set_74 __vki_kernel_fd_set;
1378 typedef int __vki_kernel_key_t;   1378 typedef int __vki_kernel_key_t;
1379 typedef int __vki_kernel_mqd_t;   1379 typedef int __vki_kernel_mqd_t;
1380 typedef __vki_kernel_fd_set vki_fd_set;   1380 typedef __vki_kernel_fd_set vki_fd_set;
1381 typedef __vki_kernel_mode_t vki_mode_t;   1381 typedef __vki_kernel_mode_t vki_mode_t;
1382 typedef __vki_kernel_off_t vki_off_t;   1382 typedef __vki_kernel_off_t vki_off_t;
1383 typedef __vki_kernel_pid_t vki_pid_t;   1383 typedef __vki_kernel_pid_t vki_pid_t;
1384 typedef __vki_kernel_key_t vki_key_t;   1384 typedef __vki_kernel_key_t vki_key_t;
1385 typedef __vki_kernel_suseconds_t vki_suseconds_t;   1385 typedef __vki_kernel_suseconds_t vki_suseconds_t;
1386 typedef __vki_kernel_timer_t vki_timer_t;   1386 typedef __vki_kernel_timer_t vki_timer_t;
1387 typedef __vki_kernel_clockid_t vki_clockid_t;   1387 typedef __vki_kernel_clockid_t vki_clockid_t;
1388 typedef __vki_kernel_mqd_t vki_mqd_t;   1388 typedef __vki_kernel_mqd_t vki_mqd_t;
1389 typedef __vki_kernel_uid32_t vki_uid_t;   1389 typedef __vki_kernel_uid32_t vki_uid_t;
1390 typedef __vki_kernel_gid32_t vki_gid_t;   1390 typedef __vki_kernel_gid32_t vki_gid_t;
1391 typedef __vki_kernel_old_uid_t vki_old_uid_t;   1391 typedef __vki_kernel_old_uid_t vki_old_uid_t;
1392 typedef __vki_kernel_old_gid_t vki_old_gid_t;   1392 typedef __vki_kernel_old_gid_t vki_old_gid_t;
1393 typedef __vki_kernel_loff_t vki_loff_t;   1393 typedef __vki_kernel_loff_t vki_loff_t;
1394 typedef __vki_kernel_size_t vki_size_t;   1394 typedef __vki_kernel_size_t vki_size_t;
1395 typedef __vki_kernel_time_t vki_time_t;   1395 typedef __vki_kernel_time_t vki_time_t;
1396 typedef __vki_kernel_clock_t vki_clock_t;   1396 typedef __vki_kernel_clock_t vki_clock_t;
1397 typedef __vki_kernel_caddr_t vki_caddr_t;   1397 typedef __vki_kernel_caddr_t vki_caddr_t;
1398 typedef unsigned long vki_u_long;   1398 typedef unsigned long vki_u_long;
1399 typedef unsigned int vki_uint;   1399 typedef unsigned int vki_uint;
1400 typedef unsigned char __vki_u8;   1400 typedef unsigned char __vki_u8;
1401 typedef short __vki_s16;   1401 typedef short __vki_s16;
1402 typedef unsigned short __vki_u16;   1402 typedef unsigned short __vki_u16;
1403 typedef int __vki_s32;   1403 typedef int __vki_s32;
1404 typedef unsigned int __vki_u32;   1404 typedef unsigned int __vki_u32;
1405 typedef long long __vki_s64;   1405 typedef long long __vki_s64;
1406 typedef unsigned long long __vki_u64;   1406 typedef unsigned long long __vki_u64;
1407 typedef unsigned short vki_u16;   1407 typedef unsigned short vki_u16;
1408 typedef unsigned int vki_u32;   1408 typedef unsigned int vki_u32;
1409 typedef void __vki_signalfn_t(int  );   1409 typedef void __vki_signalfn_t(int  );
1410 typedef __vki_signalfn_t *__vki_sighandler_t;   1410 typedef __vki_signalfn_t *__vki_sighandler_t;
1411 typedef void __vki_restorefn_t(void);   1411 typedef void __vki_restorefn_t(void);
1412 typedef __vki_restorefn_t *__vki_sigrestore_t;   1412 typedef __vki_restorefn_t *__vki_sigrestore_t;
1413 typedef unsigned long vki_old_sigset_t;   1413 typedef unsigned long vki_old_sigset_t;
1414 struct __anonstruct_vki_sigset_t_75 {   1414 struct __anonstruct_vki_sigset_t_75 {
1415    unsigned long sig[2] ;   1415    unsigned long sig[2] ;
1416 };   1416 };
1417 typedef struct __anonstruct_vki_sigset_t_75 vki_sigset_t;   1417 typedef struct __anonstruct_vki_sigset_t_75 vki_sigset_t;
1418 struct vki_old_sigaction {   1418 struct vki_old_sigaction {
1419    __vki_sighandler_t ksa_handler ;   1419    __vki_sighandler_t ksa_handler ;
1420    vki_old_sigset_t sa_mask ;   1420    vki_old_sigset_t sa_mask ;
1421    unsigned long sa_flags ;   1421    unsigned long sa_flags ;
1422    __vki_sigrestore_t sa_restorer ;   1422    __vki_sigrestore_t sa_restorer ;
1423 };   1423 };
1424 struct vki_sigaction_base {   1424 struct vki_sigaction_base {
1425    __vki_sighandler_t ksa_handler ;   1425    __vki_sighandler_t ksa_handler ;
1426    unsigned long sa_flags ;   1426    unsigned long sa_flags ;
1427    __vki_sigrestore_t sa_restorer ;   1427    __vki_sigrestore_t sa_restorer ;
1428    vki_sigset_t sa_mask ;   1428    vki_sigset_t sa_mask ;
1429 };   1429 };
1430 typedef struct vki_sigaction_base vki_sigaction_toK_t;   1430 typedef struct vki_sigaction_base vki_sigaction_toK_t;
1431 typedef struct vki_sigaction_base vki_sigaction_fromK_t;   1431 typedef struct vki_sigaction_base vki_sigaction_fromK_t;
1432 struct vki_sigaltstack {   1432 struct vki_sigaltstack {
1433    void *ss_sp ;   1433    void *ss_sp ;
1434    int ss_flags ;   1434    int ss_flags ;
1435    vki_size_t ss_size ;   1435    vki_size_t ss_size ;
1436 };   1436 };
1437 typedef struct vki_sigaltstack vki_stack_t;   1437 typedef struct vki_sigaltstack vki_stack_t;
1438 struct _vki_fpreg {   1438 struct _vki_fpreg {
1439    unsigned short significand[4] ;   1439    unsigned short significand[4] ;
1440    unsigned short exponent ;   1440    unsigned short exponent ;
1441 };   1441 };
1442 struct _vki_fpxreg {   1442 struct _vki_fpxreg {
1443    unsigned short significand[4] ;   1443    unsigned short significand[4] ;
1444    unsigned short exponent ;   1444    unsigned short exponent ;
1445    unsigned short padding[3] ;   1445    unsigned short padding[3] ;
1446 };   1446 };
1447 struct _vki_xmmreg {   1447 struct _vki_xmmreg {
1448    unsigned long element[4] ;   1448    unsigned long element[4] ;
1449 };   1449 };
1450 struct _vki_fpstate {   1450 struct _vki_fpstate {
1451    unsigned long cw ;   1451    unsigned long cw ;
1452    unsigned long sw ;   1452    unsigned long sw ;
1453    unsigned long tag ;   1453    unsigned long tag ;
1454    unsigned long ipoff ;   1454    unsigned long ipoff ;
1455    unsigned long cssel ;   1455    unsigned long cssel ;
1456    unsigned long dataoff ;   1456    unsigned long dataoff ;
1457    unsigned long datasel ;   1457    unsigned long datasel ;
1458    struct _vki_fpreg _st[8] ;   1458    struct _vki_fpreg _st[8] ;
1459    unsigned short status ;   1459    unsigned short status ;
1460    unsigned short magic ;   1460    unsigned short magic ;
1461    unsigned long _fxsr_env[6] ;   1461    unsigned long _fxsr_env[6] ;
1462    unsigned long mxcsr ;   1462    unsigned long mxcsr ;
1463    unsigned long reserved ;   1463    unsigned long reserved ;
1464    struct _vki_fpxreg _fxsr_st[8] ;   1464    struct _vki_fpxreg _fxsr_st[8] ;
1465    struct _vki_xmmreg _xmm[8] ;   1465    struct _vki_xmmreg _xmm[8] ;
1466    unsigned long padding[56] ;   1466    unsigned long padding[56] ;
1467 };   1467 };
1468 struct vki_sigcontext {   1468 struct vki_sigcontext {
1469    unsigned short gs ;   1469    unsigned short gs ;
1470    unsigned short __gsh ;   1470    unsigned short __gsh ;
1471    unsigned short fs ;   1471    unsigned short fs ;
1472    unsigned short __fsh ;   1472    unsigned short __fsh ;
1473    unsigned short es ;   1473    unsigned short es ;
1474    unsigned short __esh ;   1474    unsigned short __esh ;
1475    unsigned short ds ;   1475    unsigned short ds ;
1476    unsigned short __dsh ;   1476    unsigned short __dsh ;
1477    unsigned long edi ;   1477    unsigned long edi ;
1478    unsigned long esi ;   1478    unsigned long esi ;
1479    unsigned long ebp ;   1479    unsigned long ebp ;
1480    unsigned long esp ;   1480    unsigned long esp ;
1481    unsigned long ebx ;   1481    unsigned long ebx ;
1482    unsigned long edx ;   1482    unsigned long edx ;
1483    unsigned long ecx ;   1483    unsigned long ecx ;
1484    unsigned long eax ;   1484    unsigned long eax ;
1485    unsigned long trapno ;   1485    unsigned long trapno ;
1486    unsigned long err ;   1486    unsigned long err ;
1487    unsigned long eip ;   1487    unsigned long eip ;
1488    unsigned short cs ;   1488    unsigned short cs ;
1489    unsigned short __csh ;   1489    unsigned short __csh ;
1490    unsigned long eflags ;   1490    unsigned long eflags ;
1491    unsigned long esp_at_signal ;   1491    unsigned long esp_at_signal ;
1492    unsigned short ss ;   1492    unsigned short ss ;
1493    unsigned short __ssh ;   1493    unsigned short __ssh ;
1494    struct _vki_fpstate *fpstate ;   1494    struct _vki_fpstate *fpstate ;
1495    unsigned long oldmask ;   1495    unsigned long oldmask ;
1496    unsigned long cr2 ;   1496    unsigned long cr2 ;
1497 };   1497 };
1498 struct vki_stat {   1498 struct vki_stat {
1499    unsigned long st_dev ;   1499    unsigned long st_dev ;
1500    unsigned long st_ino ;   1500    unsigned long st_ino ;
1501    unsigned short st_mode ;   1501    unsigned short st_mode ;
1502    unsigned short st_nlink ;   1502    unsigned short st_nlink ;
1503    unsigned short st_uid ;   1503    unsigned short st_uid ;
1504    unsigned short st_gid ;   1504    unsigned short st_gid ;
1505    unsigned long st_rdev ;   1505    unsigned long st_rdev ;
1506    unsigned long st_size ;   1506    unsigned long st_size ;
1507    unsigned long st_blksize ;   1507    unsigned long st_blksize ;
1508    unsigned long st_blocks ;   1508    unsigned long st_blocks ;
1509    unsigned long st_atime ;   1509    unsigned long st_atime ;
1510    unsigned long st_atime_nsec ;   1510    unsigned long st_atime_nsec ;
1511    unsigned long st_mtime ;   1511    unsigned long st_mtime ;
1512    unsigned long st_mtime_nsec ;   1512    unsigned long st_mtime_nsec ;
1513    unsigned long st_ctime ;   1513    unsigned long st_ctime ;
1514    unsigned long st_ctime_nsec ;   1514    unsigned long st_ctime_nsec ;
1515    unsigned long __unused4 ;   1515    unsigned long __unused4 ;
1516    unsigned long __unused5 ;   1516    unsigned long __unused5 ;
1517 };   1517 };
1518 struct vki_stat64 {   1518 struct vki_stat64 {
1519    unsigned long long st_dev ;   1519    unsigned long long st_dev ;
1520    unsigned char __pad0[4] ;   1520    unsigned char __pad0[4] ;
1521    unsigned long __st_ino ;   1521    unsigned long __st_ino ;
1522    unsigned int st_mode ;   1522    unsigned int st_mode ;
1523    unsigned int st_nlink ;   1523    unsigned int st_nlink ;
1524    unsigned long st_uid ;   1524    unsigned long st_uid ;
1525    unsigned long st_gid ;   1525    unsigned long st_gid ;
1526    unsigned long long st_rdev ;   1526    unsigned long long st_rdev ;
1527    unsigned char __pad3[4] ;   1527    unsigned char __pad3[4] ;
1528    long long st_size ;   1528    long long st_size ;
1529    unsigned long st_blksize ;   1529    unsigned long st_blksize ;
1530    unsigned long st_blocks ;   1530    unsigned long st_blocks ;
1531    unsigned long __pad4 ;   1531    unsigned long __pad4 ;
1532    unsigned long st_atime ;   1532    unsigned long st_atime ;
1533    unsigned long st_atime_nsec ;   1533    unsigned long st_atime_nsec ;
1534    unsigned long st_mtime ;   1534    unsigned long st_mtime ;
1535    unsigned int st_mtime_nsec ;   1535    unsigned int st_mtime_nsec ;
1536    unsigned long st_ctime ;   1536    unsigned long st_ctime ;
1537    unsigned long st_ctime_nsec ;   1537    unsigned long st_ctime_nsec ;
1538    unsigned long long st_ino ;   1538    unsigned long long st_ino ;
1539 };   1539 };
1540 struct vki_statfs {   1540 struct vki_statfs {
1541    __vki_u32 f_type ;   1541    __vki_u32 f_type ;
1542    __vki_u32 f_bsize ;   1542    __vki_u32 f_bsize ;
1543    __vki_u32 f_blocks ;   1543    __vki_u32 f_blocks ;
1544    __vki_u32 f_bfree ;   1544    __vki_u32 f_bfree ;
1545    __vki_u32 f_bavail ;   1545    __vki_u32 f_bavail ;
1546    __vki_u32 f_files ;   1546    __vki_u32 f_files ;
1547    __vki_u32 f_ffree ;   1547    __vki_u32 f_ffree ;
1548    __vki_kernel_fsid_t f_fsid ;   1548    __vki_kernel_fsid_t f_fsid ;
1549    __vki_u32 f_namelen ;   1549    __vki_u32 f_namelen ;
1550    __vki_u32 f_frsize ;   1550    __vki_u32 f_frsize ;
1551    __vki_u32 f_spare[5] ;   1551    __vki_u32 f_spare[5] ;
1552 };   1552 };
1553 struct vki_winsize {   1553 struct vki_winsize {
1554    unsigned short ws_row ;   1554    unsigned short ws_row ;
1555    unsigned short ws_col ;   1555    unsigned short ws_col ;
1556    unsigned short ws_xpixel ;   1556    unsigned short ws_xpixel ;
1557    unsigned short ws_ypixel ;   1557    unsigned short ws_ypixel ;
1558 };   1558 };
1559 struct vki_termio {   1559 struct vki_termio {
1560    unsigned short c_iflag ;   1560    unsigned short c_iflag ;
1561    unsigned short c_oflag ;   1561    unsigned short c_oflag ;
1562    unsigned short c_cflag ;   1562    unsigned short c_cflag ;
1563    unsigned short c_lflag ;   1563    unsigned short c_lflag ;
1564    unsigned char c_line ;   1564    unsigned char c_line ;
1565    unsigned char c_cc[8] ;   1565    unsigned char c_cc[8] ;
1566 };   1566 };
1567 typedef unsigned char vki_cc_t;   1567 typedef unsigned char vki_cc_t;
1568 typedef unsigned int vki_tcflag_t;   1568 typedef unsigned int vki_tcflag_t;
1569 struct vki_termios {   1569 struct vki_termios {
1570    vki_tcflag_t c_iflag ;   1570    vki_tcflag_t c_iflag ;
1571    vki_tcflag_t c_oflag ;   1571    vki_tcflag_t c_oflag ;
1572    vki_tcflag_t c_cflag ;   1572    vki_tcflag_t c_cflag ;
1573    vki_tcflag_t c_lflag ;   1573    vki_tcflag_t c_lflag ;
1574    vki_cc_t c_line ;   1574    vki_cc_t c_line ;
1575    vki_cc_t c_cc[19] ;   1575    vki_cc_t c_cc[19] ;
1576 };   1576 };
1577 struct vki_pollfd {   1577 struct vki_pollfd {
1578    int fd ;   1578    int fd ;
1579    short events ;   1579    short events ;
1580    short revents ;   1580    short revents ;
1581 };   1581 };
1582 struct vki_user_i387_struct {   1582 struct vki_user_i387_struct {
1583    long cwd ;   1583    long cwd ;
1584    long swd ;   1584    long swd ;
1585    long twd ;   1585    long twd ;
1586    long fip ;   1586    long fip ;
1587    long fcs ;   1587    long fcs ;
1588    long foo ;   1588    long foo ;
1589    long fos ;   1589    long fos ;
1590    long st_space[20] ;   1590    long st_space[20] ;
1591 };   1591 };
1592 struct vki_user_fxsr_struct {   1592 struct vki_user_fxsr_struct {
1593    unsigned short cwd ;   1593    unsigned short cwd ;
1594    unsigned short swd ;   1594    unsigned short swd ;
1595    unsigned short twd ;   1595    unsigned short twd ;
1596    unsigned short fop ;   1596    unsigned short fop ;
1597    long fip ;   1597    long fip ;
1598    long fcs ;   1598    long fcs ;
1599    long foo ;   1599    long foo ;
1600    long fos ;   1600    long fos ;
1601    long mxcsr ;   1601    long mxcsr ;
1602    long reserved ;   1602    long reserved ;
1603    long st_space[32] ;   1603    long st_space[32] ;
1604    long xmm_space[32] ;   1604    long xmm_space[32] ;
1605    long padding[56] ;   1605    long padding[56] ;
1606 };   1606 };
1607 struct vki_user_regs_struct {   1607 struct vki_user_regs_struct {
1608    long ebx ;   1608    long ebx ;
1609    long ecx ;   1609    long ecx ;
1610    long edx ;   1610    long edx ;
1611    long esi ;   1611    long esi ;
1612    long edi ;   1612    long edi ;
1613    long ebp ;   1613    long ebp ;
1614    long eax ;   1614    long eax ;
1615    unsigned short ds ;   1615    unsigned short ds ;
1616    unsigned short __ds ;   1616    unsigned short __ds ;
1617    unsigned short es ;   1617    unsigned short es ;
1618    unsigned short __es ;   1618    unsigned short __es ;
1619    unsigned short fs ;   1619    unsigned short fs ;
1620    unsigned short __fs ;   1620    unsigned short __fs ;
1621    unsigned short gs ;   1621    unsigned short gs ;
1622    unsigned short __gs ;   1622    unsigned short __gs ;
1623    long orig_eax ;   1623    long orig_eax ;
1624    long eip ;   1624    long eip ;
1625    unsigned short cs ;   1625    unsigned short cs ;
1626    unsigned short __cs ;   1626    unsigned short __cs ;
1627    long eflags ;   1627    long eflags ;
1628    long esp ;   1628    long esp ;
1629    unsigned short ss ;   1629    unsigned short ss ;
1630    unsigned short __ss ;   1630    unsigned short __ss ;
1631 };   1631 };
1632 typedef unsigned long vki_elf_greg_t;   1632 typedef unsigned long vki_elf_greg_t;
1633 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];   1633 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];
1634 typedef struct vki_user_i387_struct vki_elf_fpregset_t;   1634 typedef struct vki_user_i387_struct vki_elf_fpregset_t;
1635 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;   1635 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;
1636 struct vki_ucontext {   1636 struct vki_ucontext {
1637    unsigned long uc_flags ;   1637    unsigned long uc_flags ;
1638    struct vki_ucontext *uc_link ;   1638    struct vki_ucontext *uc_link ;
1639    vki_stack_t uc_stack ;   1639    vki_stack_t uc_stack ;
1640    struct vki_sigcontext uc_mcontext ;   1640    struct vki_sigcontext uc_mcontext ;
1641    vki_sigset_t uc_sigmask ;   1641    vki_sigset_t uc_sigmask ;
1642 };   1642 };
1643 struct vki_user_desc {   1643 struct vki_user_desc {
1644    unsigned int entry_number ;   1644    unsigned int entry_number ;
1645    unsigned long base_addr ;   1645    unsigned long base_addr ;
1646    unsigned int limit ;   1646    unsigned int limit ;
1647    unsigned int seg_32bit : 1 ;   1647    unsigned int seg_32bit : 1 ;
1648    unsigned int contents : 2 ;   1648    unsigned int contents : 2 ;
1649    unsigned int read_exec_only : 1 ;   1649    unsigned int read_exec_only : 1 ;
1650    unsigned int limit_in_pages : 1 ;   1650    unsigned int limit_in_pages : 1 ;
1651    unsigned int seg_not_present : 1 ;   1651    unsigned int seg_not_present : 1 ;
1652    unsigned int useable : 1 ;   1652    unsigned int useable : 1 ;
1653    unsigned int reserved : 25 ;   1653    unsigned int reserved : 25 ;
1654 };   1654 };
1655 typedef struct vki_user_desc vki_modify_ldt_t;   1655 typedef struct vki_user_desc vki_modify_ldt_t;
1656 struct vki_ipc64_perm {   1656 struct vki_ipc64_perm {
1657    __vki_kernel_key_t key ;   1657    __vki_kernel_key_t key ;
1658    __vki_kernel_uid32_t uid ;   1658    __vki_kernel_uid32_t uid ;
1659    __vki_kernel_gid32_t gid ;   1659    __vki_kernel_gid32_t gid ;
1660    __vki_kernel_uid32_t cuid ;   1660    __vki_kernel_uid32_t cuid ;
1661    __vki_kernel_gid32_t cgid ;   1661    __vki_kernel_gid32_t cgid ;
1662    __vki_kernel_mode_t mode ;   1662    __vki_kernel_mode_t mode ;
1663    unsigned short __pad1 ;   1663    unsigned short __pad1 ;
1664    unsigned short seq ;   1664    unsigned short seq ;
1665    unsigned short __pad2 ;   1665    unsigned short __pad2 ;
1666    unsigned long __unused1 ;   1666    unsigned long __unused1 ;
1667    unsigned long __unused2 ;   1667    unsigned long __unused2 ;
1668 };   1668 };
1669 struct vki_semid64_ds {   1669 struct vki_semid64_ds {
1670    struct vki_ipc64_perm sem_perm ;   1670    struct vki_ipc64_perm sem_perm ;
1671    __vki_kernel_time_t sem_otime ;   1671    __vki_kernel_time_t sem_otime ;
1672    unsigned long __unused1 ;   1672    unsigned long __unused1 ;
1673    __vki_kernel_time_t sem_ctime ;   1673    __vki_kernel_time_t sem_ctime ;
1674    unsigned long __unused2 ;   1674    unsigned long __unused2 ;
1675    unsigned long sem_nsems ;   1675    unsigned long sem_nsems ;
1676    unsigned long __unused3 ;   1676    unsigned long __unused3 ;
1677    unsigned long __unused4 ;   1677    unsigned long __unused4 ;
1678 };   1678 };
1679 struct vki_msqid64_ds {   1679 struct vki_msqid64_ds {
1680    struct vki_ipc64_perm msg_perm ;   1680    struct vki_ipc64_perm msg_perm ;
1681    __vki_kernel_time_t msg_stime ;   1681    __vki_kernel_time_t msg_stime ;
1682    unsigned long __unused1 ;   1682    unsigned long __unused1 ;
1683    __vki_kernel_time_t msg_rtime ;   1683    __vki_kernel_time_t msg_rtime ;
1684    unsigned long __unused2 ;   1684    unsigned long __unused2 ;
1685    __vki_kernel_time_t msg_ctime ;   1685    __vki_kernel_time_t msg_ctime ;
1686    unsigned long __unused3 ;   1686    unsigned long __unused3 ;
1687    unsigned long msg_cbytes ;   1687    unsigned long msg_cbytes ;
1688    unsigned long msg_qnum ;   1688    unsigned long msg_qnum ;
1689    unsigned long msg_qbytes ;   1689    unsigned long msg_qbytes ;
1690    __vki_kernel_pid_t msg_lspid ;   1690    __vki_kernel_pid_t msg_lspid ;
1691    __vki_kernel_pid_t msg_lrpid ;   1691    __vki_kernel_pid_t msg_lrpid ;
1692    unsigned long __unused4 ;   1692    unsigned long __unused4 ;
1693    unsigned long __unused5 ;   1693    unsigned long __unused5 ;
1694 };   1694 };
1695 struct vki_msgbuf;   1695 struct vki_msgbuf;
1696 struct vki_ipc_kludge {   1696 struct vki_ipc_kludge {
1697    struct vki_msgbuf *msgp ;   1697    struct vki_msgbuf *msgp ;
1698    long msgtyp ;   1698    long msgtyp ;
1699 };   1699 };
1700 struct vki_shmid64_ds {   1700 struct vki_shmid64_ds {
1701    struct vki_ipc64_perm shm_perm ;   1701    struct vki_ipc64_perm shm_perm ;
1702    vki_size_t shm_segsz ;   1702    vki_size_t shm_segsz ;
1703    __vki_kernel_time_t shm_atime ;   1703    __vki_kernel_time_t shm_atime ;
1704    unsigned long __unused1 ;   1704    unsigned long __unused1 ;
1705    __vki_kernel_time_t shm_dtime ;   1705    __vki_kernel_time_t shm_dtime ;
1706    unsigned long __unused2 ;   1706    unsigned long __unused2 ;
1707    __vki_kernel_time_t shm_ctime ;   1707    __vki_kernel_time_t shm_ctime ;
1708    unsigned long __unused3 ;   1708    unsigned long __unused3 ;
1709    __vki_kernel_pid_t shm_cpid ;   1709    __vki_kernel_pid_t shm_cpid ;
1710    __vki_kernel_pid_t shm_lpid ;   1710    __vki_kernel_pid_t shm_lpid ;
1711    unsigned long shm_nattch ;   1711    unsigned long shm_nattch ;
1712    unsigned long __unused4 ;   1712    unsigned long __unused4 ;
1713    unsigned long __unused5 ;   1713    unsigned long __unused5 ;
1714 };   1714 };
1715 struct vki_shminfo64 {   1715 struct vki_shminfo64 {
1716    unsigned long shmmax ;   1716    unsigned long shmmax ;
1717    unsigned long shmmin ;   1717    unsigned long shmmin ;
1718    unsigned long shmmni ;   1718    unsigned long shmmni ;
1719    unsigned long shmseg ;   1719    unsigned long shmseg ;
1720    unsigned long shmall ;   1720    unsigned long shmall ;
1721    unsigned long __unused1 ;   1721    unsigned long __unused1 ;
1722    unsigned long __unused2 ;   1722    unsigned long __unused2 ;
1723    unsigned long __unused3 ;   1723    unsigned long __unused3 ;
1724    unsigned long __unused4 ;   1724    unsigned long __unused4 ;
1725 };   1725 };
1726 struct vki_vm86_regs {   1726 struct vki_vm86_regs {
1727    long ebx ;   1727    long ebx ;
1728    long ecx ;   1728    long ecx ;
1729    long edx ;   1729    long edx ;
1730    long esi ;   1730    long esi ;
1731    long edi ;   1731    long edi ;
1732    long ebp ;   1732    long ebp ;
1733    long eax ;   1733    long eax ;
1734    long __null_ds ;   1734    long __null_ds ;
1735    long __null_es ;   1735    long __null_es ;
1736    long __null_fs ;   1736    long __null_fs ;
1737    long __null_gs ;   1737    long __null_gs ;
1738    long orig_eax ;   1738    long orig_eax ;
1739    long eip ;   1739    long eip ;
1740    unsigned short cs ;   1740    unsigned short cs ;
1741    unsigned short __csh ;   1741    unsigned short __csh ;
1742    long eflags ;   1742    long eflags ;
1743    long esp ;   1743    long esp ;
1744    unsigned short ss ;   1744    unsigned short ss ;
1745    unsigned short __ssh ;   1745    unsigned short __ssh ;
1746    unsigned short es ;   1746    unsigned short es ;
1747    unsigned short __esh ;   1747    unsigned short __esh ;
1748    unsigned short ds ;   1748    unsigned short ds ;
1749    unsigned short __dsh ;   1749    unsigned short __dsh ;
1750    unsigned short fs ;   1750    unsigned short fs ;
1751    unsigned short __fsh ;   1751    unsigned short __fsh ;
1752    unsigned short gs ;   1752    unsigned short gs ;
1753    unsigned short __gsh ;   1753    unsigned short __gsh ;
1754 };   1754 };
1755 struct vki_revectored_struct {   1755 struct vki_revectored_struct {
1756    unsigned long __map[8] ;   1756    unsigned long __map[8] ;
1757 };   1757 };
1758 struct vki_vm86_struct {   1758 struct vki_vm86_struct {
1759    struct vki_vm86_regs regs ;   1759    struct vki_vm86_regs regs ;
1760    unsigned long flags ;   1760    unsigned long flags ;
1761    unsigned long screen_bitmap ;   1761    unsigned long screen_bitmap ;
1762    unsigned long cpu_type ;   1762    unsigned long cpu_type ;
1763    struct vki_revectored_struct int_revectored ;   1763    struct vki_revectored_struct int_revectored ;
1764    struct vki_revectored_struct int21_revectored ;   1764    struct vki_revectored_struct int21_revectored ;
1765 };   1765 };
1766 struct vki_vm86plus_info_struct {   1766 struct vki_vm86plus_info_struct {
1767    unsigned long force_return_for_pic : 1 ;   1767    unsigned long force_return_for_pic : 1 ;
1768    unsigned long vm86dbg_active : 1 ;   1768    unsigned long vm86dbg_active : 1 ;
1769    unsigned long vm86dbg_TFpendig : 1 ;   1769    unsigned long vm86dbg_TFpendig : 1 ;
1770    unsigned long unused : 28 ;   1770    unsigned long unused : 28 ;
1771    unsigned long is_vm86pus : 1 ;   1771    unsigned long is_vm86pus : 1 ;
1772    unsigned char vm86dbg_intxxtab[32] ;   1772    unsigned char vm86dbg_intxxtab[32] ;
1773 };   1773 };
1774 struct vki_vm86plus_struct {   1774 struct vki_vm86plus_struct {
1775    struct vki_vm86_regs regs ;   1775    struct vki_vm86_regs regs ;
1776    unsigned long flags ;   1776    unsigned long flags ;
1777    unsigned long screen_bitmap ;   1777    unsigned long screen_bitmap ;
1778    unsigned long cpu_type ;   1778    unsigned long cpu_type ;
1779    struct vki_revectored_struct int_revectored ;   1779    struct vki_revectored_struct int_revectored ;
1780    struct vki_revectored_struct int21_revectored ;   1780    struct vki_revectored_struct int21_revectored ;
1781    struct vki_vm86plus_info_struct vm86plus ;   1781    struct vki_vm86plus_info_struct vm86plus ;
1782 };   1782 };
1783 typedef __vki_s32 vki_int32_t;   1783 typedef __vki_s32 vki_int32_t;
1784 typedef __vki_u8 vki_uint8_t;   1784 typedef __vki_u8 vki_uint8_t;
1785 typedef __vki_u16 vki_uint16_t;   1785 typedef __vki_u16 vki_uint16_t;
1786 typedef __vki_u32 vki_uint32_t;   1786 typedef __vki_u32 vki_uint32_t;
1787 struct vki_sysinfo {   1787 struct vki_sysinfo {
1788    long uptime ;   1788    long uptime ;
1789    unsigned long loads[3] ;   1789    unsigned long loads[3] ;
1790    unsigned long totalram ;   1790    unsigned long totalram ;
1791    unsigned long freeram ;   1791    unsigned long freeram ;
1792    unsigned long sharedram ;   1792    unsigned long sharedram ;
1793    unsigned long bufferram ;   1793    unsigned long bufferram ;
1794    unsigned long totalswap ;   1794    unsigned long totalswap ;
1795    unsigned long freeswap ;   1795    unsigned long freeswap ;
1796    unsigned short procs ;   1796    unsigned short procs ;
1797    unsigned short pad ;   1797    unsigned short pad ;
1798    unsigned long totalhigh ;   1798    unsigned long totalhigh ;
1799    unsigned long freehigh ;   1799    unsigned long freehigh ;
1800    unsigned int mem_unit ;   1800    unsigned int mem_unit ;
1801    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;   1801    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;
1802 };   1802 };
1803 struct vki_timespec {   1803 struct vki_timespec {
1804    vki_time_t tv_sec ;   1804    vki_time_t tv_sec ;
1805    long tv_nsec ;   1805    long tv_nsec ;
1806 };   1806 };
1807 struct vki_timeval {   1807 struct vki_timeval {
1808    vki_time_t tv_sec ;   1808    vki_time_t tv_sec ;
1809    vki_suseconds_t tv_usec ;   1809    vki_suseconds_t tv_usec ;
1810 };   1810 };
1811 struct vki_timezone {   1811 struct vki_timezone {
1812    int tz_minuteswest ;   1812    int tz_minuteswest ;
1813    int tz_dsttime ;   1813    int tz_dsttime ;
1814 };   1814 };
1815 struct vki_itimerspec {   1815 struct vki_itimerspec {
1816    struct vki_timespec it_interval ;   1816    struct vki_timespec it_interval ;
1817    struct vki_timespec it_value ;   1817    struct vki_timespec it_value ;
1818 };   1818 };
1819 struct vki_itimerval {   1819 struct vki_itimerval {
1820    struct vki_timeval it_interval ;   1820    struct vki_timeval it_interval ;
1821    struct vki_timeval it_value ;   1821    struct vki_timeval it_value ;
1822 };   1822 };
1823 struct vki_timex {   1823 struct vki_timex {
1824    unsigned int modes ;   1824    unsigned int modes ;
1825    long offset ;   1825    long offset ;
1826    long freq ;   1826    long freq ;
1827    long maxerror ;   1827    long maxerror ;
1828    long esterror ;   1828    long esterror ;
1829    int status ;   1829    int status ;
1830    long constant ;   1830    long constant ;
1831    long precision ;   1831    long precision ;
1832    long tolerance ;   1832    long tolerance ;
1833    struct vki_timeval time ;   1833    struct vki_timeval time ;
1834    long tick ;   1834    long tick ;
1835    long ppsfreq ;   1835    long ppsfreq ;
1836    long jitter ;   1836    long jitter ;
1837    int shift ;   1837    int shift ;
1838    long stabil ;   1838    long stabil ;
1839    long jitcnt ;   1839    long jitcnt ;
1840    long calcnt ;   1840    long calcnt ;
1841    long errcnt ;   1841    long errcnt ;
1842    long stbcnt ;   1842    long stbcnt ;
1843    int  : 32 ;   1843    int  : 32 ;
1844    int  : 32 ;   1844    int  : 32 ;
1845    int  : 32 ;   1845    int  : 32 ;
1846    int  : 32 ;   1846    int  : 32 ;
1847    int  : 32 ;   1847    int  : 32 ;
1848    int  : 32 ;   1848    int  : 32 ;
1849    int  : 32 ;   1849    int  : 32 ;
1850    int  : 32 ;   1850    int  : 32 ;
1851    int  : 32 ;   1851    int  : 32 ;
1852    int  : 32 ;   1852    int  : 32 ;
1853    int  : 32 ;   1853    int  : 32 ;
1854    int  : 32 ;   1854    int  : 32 ;
1855 };   1855 };
1856 struct vki_tms {   1856 struct vki_tms {
1857    vki_clock_t tms_utime ;   1857    vki_clock_t tms_utime ;
1858    vki_clock_t tms_stime ;   1858    vki_clock_t tms_stime ;
1859    vki_clock_t tms_cutime ;   1859    vki_clock_t tms_cutime ;
1860    vki_clock_t tms_cstime ;   1860    vki_clock_t tms_cstime ;
1861 };   1861 };
1862 struct vki_utimbuf {   1862 struct vki_utimbuf {
1863    vki_time_t actime ;   1863    vki_time_t actime ;
1864    vki_time_t modtime ;   1864    vki_time_t modtime ;
1865 };   1865 };
1866 struct vki_sched_param {   1866 struct vki_sched_param {
1867    int sched_priority ;   1867    int sched_priority ;
1868 };   1868 };
1869 union vki_sigval {   1869 union vki_sigval {
1870    int sival_int ;   1870    int sival_int ;
1871    void *sival_ptr ;   1871    void *sival_ptr ;
1872 };   1872 };
1873 typedef union vki_sigval vki_sigval_t;   1873 typedef union vki_sigval vki_sigval_t;
1874 struct __anonstruct__kill_77 {   1874 struct __anonstruct__kill_77 {
1875    vki_pid_t _pid ;   1875    vki_pid_t _pid ;
1876    vki_uid_t _uid ;   1876    vki_uid_t _uid ;
1877 };   1877 };
1878 struct __anonstruct__timer_78 {   1878 struct __anonstruct__timer_78 {
1879    vki_timer_t _tid ;   1879    vki_timer_t _tid ;
1880    int _overrun ;   1880    int _overrun ;
1881    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;   1881    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;
1882    vki_sigval_t _sigval ;   1882    vki_sigval_t _sigval ;
1883    int _sys_private ;   1883    int _sys_private ;
1884 };   1884 };
1885 struct __anonstruct__rt_79 {   1885 struct __anonstruct__rt_79 {
1886    vki_pid_t _pid ;   1886    vki_pid_t _pid ;
1887    vki_uid_t _uid ;   1887    vki_uid_t _uid ;
1888    vki_sigval_t _sigval ;   1888    vki_sigval_t _sigval ;
1889 };   1889 };
1890 struct __anonstruct__sigchld_80 {   1890 struct __anonstruct__sigchld_80 {
1891    vki_pid_t _pid ;   1891    vki_pid_t _pid ;
1892    vki_uid_t _uid ;   1892    vki_uid_t _uid ;
1893    int _status ;   1893    int _status ;
1894    vki_clock_t _utime ;   1894    vki_clock_t _utime ;
1895    vki_clock_t _stime ;   1895    vki_clock_t _stime ;
1896 };   1896 };
1897 struct __anonstruct__sigfault_81 {   1897 struct __anonstruct__sigfault_81 {
1898    void *_addr ;   1898    void *_addr ;
1899 };   1899 };
1900 struct __anonstruct__sigpoll_82 {   1900 struct __anonstruct__sigpoll_82 {
1901    long _band ;   1901    long _band ;
1902    int _fd ;   1902    int _fd ;
1903 };   1903 };
1904 union __anonunion__sifields_76 {   1904 union __anonunion__sifields_76 {
1905    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;   1905    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;
1906    struct __anonstruct__kill_77 _kill ;   1906    struct __anonstruct__kill_77 _kill ;
1907    struct __anonstruct__timer_78 _timer ;   1907    struct __anonstruct__timer_78 _timer ;
1908    struct __anonstruct__rt_79 _rt ;   1908    struct __anonstruct__rt_79 _rt ;
1909    struct __anonstruct__sigchld_80 _sigchld ;   1909    struct __anonstruct__sigchld_80 _sigchld ;
1910    struct __anonstruct__sigfault_81 _sigfault ;   1910    struct __anonstruct__sigfault_81 _sigfault ;
1911    struct __anonstruct__sigpoll_82 _sigpoll ;   1911    struct __anonstruct__sigpoll_82 _sigpoll ;
1912 };   1912 };
1913 struct vki_siginfo {   1913 struct vki_siginfo {
1914    int si_signo ;   1914    int si_signo ;
1915    int si_errno ;   1915    int si_errno ;
1916    int si_code ;   1916    int si_code ;
1917    union __anonunion__sifields_76 _sifields ;   1917    union __anonunion__sifields_76 _sifields ;
1918 };   1918 };
1919 typedef struct vki_siginfo vki_siginfo_t;   1919 typedef struct vki_siginfo vki_siginfo_t;
1920 struct __anonstruct__sigev_thread_84 {   1920 struct __anonstruct__sigev_thread_84 {
1921    void (*_function)(vki_sigval_t  ) ;   1921    void (*_function)(vki_sigval_t  ) ;
1922    void *_attribute ;   1922    void *_attribute ;
1923 };   1923 };
1924 union __anonunion__sigev_un_83 {   1924 union __anonunion__sigev_un_83 {
1925    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;   1925    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;
1926    int _tid ;   1926    int _tid ;
1927    struct __anonstruct__sigev_thread_84 _sigev_thread ;   1927    struct __anonstruct__sigev_thread_84 _sigev_thread ;
1928 };   1928 };
1929 struct vki_sigevent {   1929 struct vki_sigevent {
1930    vki_sigval_t sigev_value ;   1930    vki_sigval_t sigev_value ;
1931    int sigev_signo ;   1931    int sigev_signo ;
1932    int sigev_notify ;   1932    int sigev_notify ;
1933    union __anonunion__sigev_un_83 _sigev_un ;   1933    union __anonunion__sigev_un_83 _sigev_un ;
1934 };   1934 };
1935 typedef struct vki_sigevent vki_sigevent_t;   1935 typedef struct vki_sigevent vki_sigevent_t;
1936 enum vki_sock_type {   1936 enum vki_sock_type {
1937     VKI_SOCK_STREAM = 1   1937     VKI_SOCK_STREAM = 1
1938 } ;   1938 } ;
1939 struct vki_iovec {   1939 struct vki_iovec {
1940    void *iov_base ;   1940    void *iov_base ;
1941    __vki_kernel_size_t iov_len ;   1941    __vki_kernel_size_t iov_len ;
1942 };   1942 };
1943 typedef unsigned short vki_sa_family_t;   1943 typedef unsigned short vki_sa_family_t;
1944 struct vki_sockaddr {   1944 struct vki_sockaddr {
1945    vki_sa_family_t sa_family ;   1945    vki_sa_family_t sa_family ;
1946    char sa_data[14] ;   1946    char sa_data[14] ;
1947 };   1947 };
1948 struct vki_msghdr {   1948 struct vki_msghdr {
1949    void *msg_name ;   1949    void *msg_name ;
1950    int msg_namelen ;   1950    int msg_namelen ;
1951    struct vki_iovec *msg_iov ;   1951    struct vki_iovec *msg_iov ;
1952    __vki_kernel_size_t msg_iovlen ;   1952    __vki_kernel_size_t msg_iovlen ;
1953    void *msg_control ;   1953    void *msg_control ;
1954    __vki_kernel_size_t msg_controllen ;   1954    __vki_kernel_size_t msg_controllen ;
1955    unsigned int msg_flags ;   1955    unsigned int msg_flags ;
1956 };   1956 };
1957 struct vki_cmsghdr {   1957 struct vki_cmsghdr {
1958    __vki_kernel_size_t cmsg_len ;   1958    __vki_kernel_size_t cmsg_len ;
1959    int cmsg_level ;   1959    int cmsg_level ;
1960    int cmsg_type ;   1960    int cmsg_type ;
1961 };   1961 };
1962 struct vki_in_addr {   1962 struct vki_in_addr {
1963    __vki_u32 s_addr ;   1963    __vki_u32 s_addr ;
1964 };   1964 };
1965 struct vki_sockaddr_in {   1965 struct vki_sockaddr_in {
1966    vki_sa_family_t sin_family ;   1966    vki_sa_family_t sin_family ;
1967    unsigned short sin_port ;   1967    unsigned short sin_port ;
1968    struct vki_in_addr sin_addr ;   1968    struct vki_in_addr sin_addr ;
1969    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;   1969    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;
1970 };   1970 };
1971 union __anonunion_vki_in6_u_85 {   1971 union __anonunion_vki_in6_u_85 {
1972    __vki_u8 u6_addr8[16] ;   1972    __vki_u8 u6_addr8[16] ;
1973    __vki_u16 u6_addr16[8] ;   1973    __vki_u16 u6_addr16[8] ;
1974    __vki_u32 u6_addr32[4] ;   1974    __vki_u32 u6_addr32[4] ;
1975 };   1975 };
1976 struct vki_in6_addr {   1976 struct vki_in6_addr {
1977    union __anonunion_vki_in6_u_85 vki_in6_u ;   1977    union __anonunion_vki_in6_u_85 vki_in6_u ;
1978 };   1978 };
1979 struct vki_sockaddr_in6 {   1979 struct vki_sockaddr_in6 {
1980    unsigned short sin6_family ;   1980    unsigned short sin6_family ;
1981    __vki_u16 sin6_port ;   1981    __vki_u16 sin6_port ;
1982    __vki_u32 sin6_flowinfo ;   1982    __vki_u32 sin6_flowinfo ;
1983    struct vki_in6_addr sin6_addr ;   1983    struct vki_in6_addr sin6_addr ;
1984    __vki_u32 sin6_scope_id ;   1984    __vki_u32 sin6_scope_id ;
1985 };   1985 };
1986 struct vki_sockaddr_un {   1986 struct vki_sockaddr_un {
1987    vki_sa_family_t sun_family ;   1987    vki_sa_family_t sun_family ;
1988    char sun_path[108] ;   1988    char sun_path[108] ;
1989 };   1989 };
1990 struct vki_ifmap {   1990 struct vki_ifmap {
1991    unsigned long mem_start ;   1991    unsigned long mem_start ;
1992    unsigned long mem_end ;   1992    unsigned long mem_end ;
1993    unsigned short base_addr ;   1993    unsigned short base_addr ;
1994    unsigned char irq ;   1994    unsigned char irq ;
1995    unsigned char dma ;   1995    unsigned char dma ;
1996    unsigned char port ;   1996    unsigned char port ;
1997 };   1997 };
1998 union __anonunion_ifs_ifsu_86 {   1998 union __anonunion_ifs_ifsu_86 {
1999    void *raw_hdlc ;   1999    void *raw_hdlc ;
2000    void *cisco ;   2000    void *cisco ;
2001    void *fr ;   2001    void *fr ;
2002    void *fr_pvc ;   2002    void *fr_pvc ;
2003    void *fr_pvc_info ;   2003    void *fr_pvc_info ;
2004    void *sync ;   2004    void *sync ;
2005    void *te1 ;   2005    void *te1 ;
2006 };   2006 };
2007 struct vki_if_settings {   2007 struct vki_if_settings {
2008    unsigned int type ;   2008    unsigned int type ;
2009    unsigned int size ;   2009    unsigned int size ;
2010    union __anonunion_ifs_ifsu_86 ifs_ifsu ;   2010    union __anonunion_ifs_ifsu_86 ifs_ifsu ;
2011 };   2011 };
2012 union __anonunion_ifr_ifrn_87 {   2012 union __anonunion_ifr_ifrn_87 {
2013    char ifrn_name[16] ;   2013    char ifrn_name[16] ;
2014 };   2014 };
2015 union __anonunion_ifr_ifru_88 {   2015 union __anonunion_ifr_ifru_88 {
2016    struct vki_sockaddr ifru_addr ;   2016    struct vki_sockaddr ifru_addr ;
2017    struct vki_sockaddr ifru_dstaddr ;   2017    struct vki_sockaddr ifru_dstaddr ;
2018    struct vki_sockaddr ifru_broadaddr ;   2018    struct vki_sockaddr ifru_broadaddr ;
2019    struct vki_sockaddr ifru_netmask ;   2019    struct vki_sockaddr ifru_netmask ;
2020    struct vki_sockaddr ifru_hwaddr ;   2020    struct vki_sockaddr ifru_hwaddr ;
2021    short ifru_flags ;   2021    short ifru_flags ;
2022    int ifru_ivalue ;   2022    int ifru_ivalue ;
2023    int ifru_mtu ;   2023    int ifru_mtu ;
2024    struct vki_ifmap ifru_map ;   2024    struct vki_ifmap ifru_map ;
2025    char ifru_slave[16] ;   2025    char ifru_slave[16] ;
2026    char ifru_newname[16] ;   2026    char ifru_newname[16] ;
2027    void *ifru_data ;   2027    void *ifru_data ;
2028    struct vki_if_settings ifru_settings ;   2028    struct vki_if_settings ifru_settings ;
2029 };   2029 };
2030 struct vki_ifreq {   2030 struct vki_ifreq {
2031    union __anonunion_ifr_ifrn_87 ifr_ifrn ;   2031    union __anonunion_ifr_ifrn_87 ifr_ifrn ;
2032    union __anonunion_ifr_ifru_88 ifr_ifru ;   2032    union __anonunion_ifr_ifru_88 ifr_ifru ;
2033 };   2033 };
2034 union __anonunion_ifc_ifcu_89 {   2034 union __anonunion_ifc_ifcu_89 {
2035    char *ifcu_buf ;   2035    char *ifcu_buf ;
2036    struct vki_ifreq *ifcu_req ;   2036    struct vki_ifreq *ifcu_req ;
2037 };   2037 };
2038 struct vki_ifconf {   2038 struct vki_ifconf {
2039    int ifc_len ;   2039    int ifc_len ;
2040    union __anonunion_ifc_ifcu_89 ifc_ifcu ;   2040    union __anonunion_ifc_ifcu_89 ifc_ifcu ;
2041 };   2041 };
2042 struct vki_arpreq {   2042 struct vki_arpreq {
2043    struct vki_sockaddr arp_pa ;   2043    struct vki_sockaddr arp_pa ;
2044    struct vki_sockaddr arp_ha ;   2044    struct vki_sockaddr arp_ha ;
2045    int arp_flags ;   2045    int arp_flags ;
2046    struct vki_sockaddr arp_netmask ;   2046    struct vki_sockaddr arp_netmask ;
2047    char arp_dev[16] ;   2047    char arp_dev[16] ;
2048 };   2048 };
2049 struct vki_rtentry {   2049 struct vki_rtentry {
2050    unsigned long rt_pad1 ;   2050    unsigned long rt_pad1 ;
2051    struct vki_sockaddr rt_dst ;   2051    struct vki_sockaddr rt_dst ;
2052    struct vki_sockaddr rt_gateway ;   2052    struct vki_sockaddr rt_gateway ;
2053    struct vki_sockaddr rt_genmask ;   2053    struct vki_sockaddr rt_genmask ;
2054    unsigned short rt_flags ;   2054    unsigned short rt_flags ;
2055    short rt_pad2 ;   2055    short rt_pad2 ;
2056    unsigned long rt_pad3 ;   2056    unsigned long rt_pad3 ;
2057    void *rt_pad4 ;   2057    void *rt_pad4 ;
2058    short rt_metric ;   2058    short rt_metric ;
2059    char *rt_dev ;   2059    char *rt_dev ;
2060    unsigned long rt_mtu ;   2060    unsigned long rt_mtu ;
2061    unsigned long rt_window ;   2061    unsigned long rt_window ;
2062    unsigned short rt_irtt ;   2062    unsigned short rt_irtt ;
2063 };   2063 };
2064 typedef __vki_s32 vki_sctp_assoc_t;   2064 typedef __vki_s32 vki_sctp_assoc_t;
2065 enum vki_sctp_optname {   2065 enum vki_sctp_optname {
2066     VKI_SCTP_RTOINFO = 0,   2066     VKI_SCTP_RTOINFO = 0,
2067     VKI_SCTP_ASSOCINFO = 1,   2067     VKI_SCTP_ASSOCINFO = 1,
2068     VKI_SCTP_INITMSG = 2,   2068     VKI_SCTP_INITMSG = 2,
2069     VKI_SCTP_NODELAY = 3,   2069     VKI_SCTP_NODELAY = 3,
2070     VKI_SCTP_AUTOCLOSE = 4,   2070     VKI_SCTP_AUTOCLOSE = 4,
2071     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,   2071     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,
2072     VKI_SCTP_PRIMARY_ADDR = 6,   2072     VKI_SCTP_PRIMARY_ADDR = 6,
2073     VKI_SCTP_ADAPTION_LAYER = 7,   2073     VKI_SCTP_ADAPTION_LAYER = 7,
2074     VKI_SCTP_DISABLE_FRAGMENTS = 8,   2074     VKI_SCTP_DISABLE_FRAGMENTS = 8,
2075     VKI_SCTP_PEER_ADDR_PARAMS = 9,   2075     VKI_SCTP_PEER_ADDR_PARAMS = 9,
2076     VKI_SCTP_DEFAULT_SEND_PARAM = 10,   2076     VKI_SCTP_DEFAULT_SEND_PARAM = 10,
2077     VKI_SCTP_EVENTS = 11,   2077     VKI_SCTP_EVENTS = 11,
2078     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,   2078     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,
2079     VKI_SCTP_MAXSEG = 13,   2079     VKI_SCTP_MAXSEG = 13,
2080     VKI_SCTP_STATUS = 14,   2080     VKI_SCTP_STATUS = 14,
2081     VKI_SCTP_GET_PEER_ADDR_INFO = 15,   2081     VKI_SCTP_GET_PEER_ADDR_INFO = 15,
2082     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,   2082     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,
2083     VKI_SCTP_SOCKOPT_BINDX_REM = 101,   2083     VKI_SCTP_SOCKOPT_BINDX_REM = 101,
2084     VKI_SCTP_SOCKOPT_PEELOFF = 102,   2084     VKI_SCTP_SOCKOPT_PEELOFF = 102,
2085     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,   2085     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,
2086     VKI_SCTP_GET_PEER_ADDRS = 104,   2086     VKI_SCTP_GET_PEER_ADDRS = 104,
2087     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,   2087     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,
2088     VKI_SCTP_GET_LOCAL_ADDRS = 106,   2088     VKI_SCTP_GET_LOCAL_ADDRS = 106,
2089     VKI_SCTP_SOCKOPT_CONNECTX = 107   2089     VKI_SCTP_SOCKOPT_CONNECTX = 107
2090 } ;   2090 } ;
2091 struct vki_sctp_getaddrs {   2091 struct vki_sctp_getaddrs {
2092    vki_sctp_assoc_t assoc_id ;   2092    vki_sctp_assoc_t assoc_id ;
2093    int addr_num ;   2093    int addr_num ;
2094    struct vki_sockaddr *addrs ;   2094    struct vki_sockaddr *addrs ;
2095 };   2095 };
2096 struct vki_rusage {   2096 struct vki_rusage {
2097    struct vki_timeval ru_utime ;   2097    struct vki_timeval ru_utime ;
2098    struct vki_timeval ru_stime ;   2098    struct vki_timeval ru_stime ;
2099    long ru_maxrss ;   2099    long ru_maxrss ;
2100    long ru_ixrss ;   2100    long ru_ixrss ;
2101    long ru_idrss ;   2101    long ru_idrss ;
2102    long ru_isrss ;   2102    long ru_isrss ;
2103    long ru_minflt ;   2103    long ru_minflt ;
2104    long ru_majflt ;   2104    long ru_majflt ;
2105    long ru_nswap ;   2105    long ru_nswap ;
2106    long ru_inblock ;   2106    long ru_inblock ;
2107    long ru_oublock ;   2107    long ru_oublock ;
2108    long ru_msgsnd ;   2108    long ru_msgsnd ;
2109    long ru_msgrcv ;   2109    long ru_msgrcv ;
2110    long ru_nsignals ;   2110    long ru_nsignals ;
2111    long ru_nvcsw ;   2111    long ru_nvcsw ;
2112    long ru_nivcsw ;   2112    long ru_nivcsw ;
2113 };   2113 };
2114 struct vki_rlimit {   2114 struct vki_rlimit {
2115    unsigned long rlim_cur ;   2115    unsigned long rlim_cur ;
2116    unsigned long rlim_max ;   2116    unsigned long rlim_max ;
2117 };   2117 };
2118 struct vki_rlimit64 {   2118 struct vki_rlimit64 {
2119    __vki_u64 rlim_cur ;   2119    __vki_u64 rlim_cur ;
2120    __vki_u64 rlim_max ;   2120    __vki_u64 rlim_max ;
2121 };   2121 };
2122 struct vki_elf_siginfo {   2122 struct vki_elf_siginfo {
2123    int si_signo ;   2123    int si_signo ;
2124    int si_code ;   2124    int si_code ;
2125    int si_errno ;   2125    int si_errno ;
2126 };   2126 };
2127 struct vki_elf_prstatus {   2127 struct vki_elf_prstatus {
2128    struct vki_elf_siginfo pr_info ;   2128    struct vki_elf_siginfo pr_info ;
2129    short pr_cursig ;   2129    short pr_cursig ;
2130    unsigned long pr_sigpend ;   2130    unsigned long pr_sigpend ;
2131    unsigned long pr_sighold ;   2131    unsigned long pr_sighold ;
2132    vki_pid_t pr_pid ;   2132    vki_pid_t pr_pid ;
2133    vki_pid_t pr_ppid ;   2133    vki_pid_t pr_ppid ;
2134    vki_pid_t pr_pgrp ;   2134    vki_pid_t pr_pgrp ;
2135    vki_pid_t pr_sid ;   2135    vki_pid_t pr_sid ;
2136    struct vki_timeval pr_utime ;   2136    struct vki_timeval pr_utime ;
2137    struct vki_timeval pr_stime ;   2137    struct vki_timeval pr_stime ;
2138    struct vki_timeval pr_cutime ;   2138    struct vki_timeval pr_cutime ;
2139    struct vki_timeval pr_cstime ;   2139    struct vki_timeval pr_cstime ;
2140    vki_elf_gregset_t pr_reg ;   2140    vki_elf_gregset_t pr_reg ;
2141    int pr_fpvalid ;   2141    int pr_fpvalid ;
2142 };   2142 };
2143 struct vki_elf_prpsinfo {   2143 struct vki_elf_prpsinfo {
2144    char pr_state ;   2144    char pr_state ;
2145    char pr_sname ;   2145    char pr_sname ;
2146    char pr_zomb ;   2146    char pr_zomb ;
2147    char pr_nice ;   2147    char pr_nice ;
2148    unsigned long pr_flag ;   2148    unsigned long pr_flag ;
2149    __vki_kernel_uid_t pr_uid ;   2149    __vki_kernel_uid_t pr_uid ;
2150    __vki_kernel_gid_t pr_gid ;   2150    __vki_kernel_gid_t pr_gid ;
2151    vki_pid_t pr_pid ;   2151    vki_pid_t pr_pid ;
2152    vki_pid_t pr_ppid ;   2152    vki_pid_t pr_ppid ;
2153    vki_pid_t pr_pgrp ;   2153    vki_pid_t pr_pgrp ;
2154    vki_pid_t pr_sid ;   2154    vki_pid_t pr_sid ;
2155    char pr_fname[16] ;   2155    char pr_fname[16] ;
2156    char pr_psargs[80] ;   2156    char pr_psargs[80] ;
2157 };   2157 };
2158 struct vki_epoll_event {   2158 struct vki_epoll_event {
2159    __vki_u32 events ;   2159    __vki_u32 events ;
2160    __vki_u64 data ;   2160    __vki_u64 data ;
2161 };   2161 };
2162 struct vki_mq_attr {   2162 struct vki_mq_attr {
2163    long mq_flags ;   2163    long mq_flags ;
2164    long mq_maxmsg ;   2164    long mq_maxmsg ;
2165    long mq_msgsize ;   2165    long mq_msgsize ;
2166    long mq_curmsgs ;   2166    long mq_curmsgs ;
2167    long __reserved[4] ;   2167    long __reserved[4] ;
2168 };   2168 };
2169 struct vki_new_utsname {   2169 struct vki_new_utsname {
2170    char sysname[65] ;   2170    char sysname[65] ;
2171    char nodename[65] ;   2171    char nodename[65] ;
2172    char release[65] ;   2172    char release[65] ;
2173    char version[65] ;   2173    char version[65] ;
2174    char machine[65] ;   2174    char machine[65] ;
2175    char domainname[65] ;   2175    char domainname[65] ;
2176 };   2176 };
2177 struct vki_mii_ioctl_data {   2177 struct vki_mii_ioctl_data {
2178    vki_u16 phy_id ;   2178    vki_u16 phy_id ;
2179    vki_u16 reg_num ;   2179    vki_u16 reg_num ;
2180    vki_u16 val_in ;   2180    vki_u16 val_in ;
2181    vki_u16 val_out ;   2181    vki_u16 val_out ;
2182 };   2182 };
2183 struct __vki_user_cap_header_struct {   2183 struct __vki_user_cap_header_struct {
2184    __vki_u32 version ;   2184    __vki_u32 version ;
2185    int pid ;   2185    int pid ;
2186 };   2186 };
2187 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;   2187 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;
2188 struct __vki_user_cap_data_struct {   2188 struct __vki_user_cap_data_struct {
2189    __vki_u32 effective ;   2189    __vki_u32 effective ;
2190    __vki_u32 permitted ;   2190    __vki_u32 permitted ;
2191    __vki_u32 inheritable ;   2191    __vki_u32 inheritable ;
2192 };   2192 };
2193 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;   2193 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;
2194 struct vki_ipc_perm {   2194 struct vki_ipc_perm {
2195    __vki_kernel_key_t key ;   2195    __vki_kernel_key_t key ;
2196    __vki_kernel_uid_t uid ;   2196    __vki_kernel_uid_t uid ;
2197    __vki_kernel_gid_t gid ;   2197    __vki_kernel_gid_t gid ;
2198    __vki_kernel_uid_t cuid ;   2198    __vki_kernel_uid_t cuid ;
2199    __vki_kernel_gid_t cgid ;   2199    __vki_kernel_gid_t cgid ;
2200    __vki_kernel_mode_t mode ;   2200    __vki_kernel_mode_t mode ;
2201    unsigned short seq ;   2201    unsigned short seq ;
2202 };   2202 };
2203 struct vki_semid_ds {   2203 struct vki_semid_ds {
2204    struct vki_ipc_perm sem_perm ;   2204    struct vki_ipc_perm sem_perm ;
2205    __vki_kernel_time_t sem_otime ;   2205    __vki_kernel_time_t sem_otime ;
2206    __vki_kernel_time_t sem_ctime ;   2206    __vki_kernel_time_t sem_ctime ;
2207    void *sem_base ;   2207    void *sem_base ;
2208    void *sem_pending ;   2208    void *sem_pending ;
2209    void **sem_pending_last ;   2209    void **sem_pending_last ;
2210    void *undo ;   2210    void *undo ;
2211    unsigned short sem_nsems ;   2211    unsigned short sem_nsems ;
2212 };   2212 };
2213 struct vki_sembuf {   2213 struct vki_sembuf {
2214    unsigned short sem_num ;   2214    unsigned short sem_num ;
2215    short sem_op ;   2215    short sem_op ;
2216    short sem_flg ;   2216    short sem_flg ;
2217 };   2217 };
2218 struct vki_seminfo;   2218 struct vki_seminfo;
2219 union vki_semun {   2219 union vki_semun {
2220    int val ;   2220    int val ;
2221    struct vki_semid_ds *buf ;   2221    struct vki_semid_ds *buf ;
2222    unsigned short *array ;   2222    unsigned short *array ;
2223    struct vki_seminfo *__buf ;   2223    struct vki_seminfo *__buf ;
2224    void *__pad ;   2224    void *__pad ;
2225 };   2225 };
2226 struct vki_seminfo {   2226 struct vki_seminfo {
2227    int semmap ;   2227    int semmap ;
2228    int semmni ;   2228    int semmni ;
2229    int semmns ;   2229    int semmns ;
2230    int semmnu ;   2230    int semmnu ;
2231    int semmsl ;   2231    int semmsl ;
2232    int semopm ;   2232    int semopm ;
2233    int semume ;   2233    int semume ;
2234    int semusz ;   2234    int semusz ;
2235    int semvmx ;   2235    int semvmx ;
2236    int semaem ;   2236    int semaem ;
2237 };   2237 };
2238 struct vki_robust_list {   2238 struct vki_robust_list {
2239    struct vki_robust_list *next ;   2239    struct vki_robust_list *next ;
2240 };   2240 };
2241 struct vki_robust_list_head {   2241 struct vki_robust_list_head {
2242    struct vki_robust_list list ;   2242    struct vki_robust_list list ;
2243    long futex_offset ;   2243    long futex_offset ;
2244    struct vki_robust_list *list_op_pending ;   2244    struct vki_robust_list *list_op_pending ;
2245 };   2245 };
2246 struct vki_dirent {   2246 struct vki_dirent {
2247    long d_ino ;   2247    long d_ino ;
2248    __vki_kernel_off_t d_off ;   2248    __vki_kernel_off_t d_off ;
2249    unsigned short d_reclen ;   2249    unsigned short d_reclen ;
2250    char d_name[256] ;   2250    char d_name[256] ;
2251 };   2251 };
2252 struct __vki_sysctl_args {   2252 struct __vki_sysctl_args {
2253    int *name ;   2253    int *name ;
2254    int nlen ;   2254    int nlen ;
2255    void *oldval ;   2255    void *oldval ;
2256    vki_size_t *oldlenp ;   2256    vki_size_t *oldlenp ;
2257    void *newval ;   2257    void *newval ;
2258    vki_size_t newlen ;   2258    vki_size_t newlen ;
2259    unsigned long __unused[4] ;   2259    unsigned long __unused[4] ;
2260 };   2260 };
2261 typedef unsigned long vki_aio_context_t;   2261 typedef unsigned long vki_aio_context_t;
2262 enum __anonenum_90 {   2262 enum __anonenum_90 {
2263     VKI_IOCB_CMD_PREAD = 0,   2263     VKI_IOCB_CMD_PREAD = 0,
2264     VKI_IOCB_CMD_PWRITE = 1,   2264     VKI_IOCB_CMD_PWRITE = 1,
2265     VKI_IOCB_CMD_FSYNC = 2,   2265     VKI_IOCB_CMD_FSYNC = 2,
2266     VKI_IOCB_CMD_FDSYNC = 3,   2266     VKI_IOCB_CMD_FDSYNC = 3,
2267     VKI_IOCB_CMD_PREADV = 7,   2267     VKI_IOCB_CMD_PREADV = 7,
2268     VKI_IOCB_CMD_PWRITEV = 8   2268     VKI_IOCB_CMD_PWRITEV = 8
2269 } ;   2269 } ;
2270 struct vki_io_event {   2270 struct vki_io_event {
2271    __vki_u64 data ;   2271    __vki_u64 data ;
2272    __vki_u64 obj ;   2272    __vki_u64 obj ;
2273    __vki_s64 result ;   2273    __vki_s64 result ;
2274    __vki_s64 result2 ;   2274    __vki_s64 result2 ;
2275 };   2275 };
2276 struct vki_iocb {   2276 struct vki_iocb {
2277    __vki_u64 aio_data ;   2277    __vki_u64 aio_data ;
2278    __vki_u32 aio_key ;   2278    __vki_u32 aio_key ;
2279    __vki_u32 aio_reserved1 ;   2279    __vki_u32 aio_reserved1 ;
2280    __vki_u16 aio_lio_opcode ;   2280    __vki_u16 aio_lio_opcode ;
2281    __vki_s16 aio_reqprio ;   2281    __vki_s16 aio_reqprio ;
2282    __vki_u32 aio_fildes ;   2282    __vki_u32 aio_fildes ;
2283    __vki_u64 aio_buf ;   2283    __vki_u64 aio_buf ;
2284    __vki_u64 aio_nbytes ;   2284    __vki_u64 aio_nbytes ;
2285    __vki_s64 aio_offset ;   2285    __vki_s64 aio_offset ;
2286    __vki_u64 aio_reserved2 ;   2286    __vki_u64 aio_reserved2 ;
2287    __vki_u64 aio_reserved3 ;   2287    __vki_u64 aio_reserved3 ;
2288 };   2288 };
2289 struct vki_aio_ring {   2289 struct vki_aio_ring {
2290    unsigned int id ;   2290    unsigned int id ;
2291    unsigned int nr ;   2291    unsigned int nr ;
2292    unsigned int head ;   2292    unsigned int head ;
2293    unsigned int tail ;   2293    unsigned int tail ;
2294    unsigned int magic ;   2294    unsigned int magic ;
2295    unsigned int compat_features ;   2295    unsigned int compat_features ;
2296    unsigned int incompat_features ;   2296    unsigned int incompat_features ;
2297    unsigned int header_length ;   2297    unsigned int header_length ;
2298    struct vki_io_event io_events[0] ;   2298    struct vki_io_event io_events[0] ;
2299 };   2299 };
2300 struct vki_msg;   2300 struct vki_msg;
2301 struct vki_msqid_ds {   2301 struct vki_msqid_ds {
2302    struct vki_ipc_perm msg_perm ;   2302    struct vki_ipc_perm msg_perm ;
2303    struct vki_msg *msg_first ;   2303    struct vki_msg *msg_first ;
2304    struct vki_msg *msg_last ;   2304    struct vki_msg *msg_last ;
2305    __vki_kernel_time_t msg_stime ;   2305    __vki_kernel_time_t msg_stime ;
2306    __vki_kernel_time_t msg_rtime ;   2306    __vki_kernel_time_t msg_rtime ;
2307    __vki_kernel_time_t msg_ctime ;   2307    __vki_kernel_time_t msg_ctime ;
2308    unsigned long msg_lcbytes ;   2308    unsigned long msg_lcbytes ;
2309    unsigned long msg_lqbytes ;   2309    unsigned long msg_lqbytes ;
2310    unsigned short msg_cbytes ;   2310    unsigned short msg_cbytes ;
2311    unsigned short msg_qnum ;   2311    unsigned short msg_qnum ;
2312    unsigned short msg_qbytes ;   2312    unsigned short msg_qbytes ;
2313    __vki_kernel_ipc_pid_t msg_lspid ;   2313    __vki_kernel_ipc_pid_t msg_lspid ;
2314    __vki_kernel_ipc_pid_t msg_lrpid ;   2314    __vki_kernel_ipc_pid_t msg_lrpid ;
2315 };   2315 };
2316 struct vki_msgbuf {   2316 struct vki_msgbuf {
2317    long mtype ;   2317    long mtype ;
2318    char mtext[1] ;   2318    char mtext[1] ;
2319 };   2319 };
2320 struct vki_msginfo {   2320 struct vki_msginfo {
2321    int msgpool ;   2321    int msgpool ;
2322    int msgmap ;   2322    int msgmap ;
2323    int msgmax ;   2323    int msgmax ;
2324    int msgmnb ;   2324    int msgmnb ;
2325    int msgmni ;   2325    int msgmni ;
2326    int msgssz ;   2326    int msgssz ;
2327    int msgtql ;   2327    int msgtql ;
2328    unsigned short msgseg ;   2328    unsigned short msgseg ;
2329 };   2329 };
2330 struct vki_shmid_ds {   2330 struct vki_shmid_ds {
2331    struct vki_ipc_perm shm_perm ;   2331    struct vki_ipc_perm shm_perm ;
2332    int shm_segsz ;   2332    int shm_segsz ;
2333    __vki_kernel_time_t shm_atime ;   2333    __vki_kernel_time_t shm_atime ;
2334    __vki_kernel_time_t shm_dtime ;   2334    __vki_kernel_time_t shm_dtime ;
2335    __vki_kernel_time_t shm_ctime ;   2335    __vki_kernel_time_t shm_ctime ;
2336    __vki_kernel_ipc_pid_t shm_cpid ;   2336    __vki_kernel_ipc_pid_t shm_cpid ;
2337    __vki_kernel_ipc_pid_t shm_lpid ;   2337    __vki_kernel_ipc_pid_t shm_lpid ;
2338    unsigned short shm_nattch ;   2338    unsigned short shm_nattch ;
2339    unsigned short shm_unused ;   2339    unsigned short shm_unused ;
2340    void *shm_unused2 ;   2340    void *shm_unused2 ;
2341    void *shm_unused3 ;   2341    void *shm_unused3 ;
2342 };   2342 };
2343 struct vki_shminfo {   2343 struct vki_shminfo {
2344    int shmmax ;   2344    int shmmax ;
2345    int shmmin ;   2345    int shmmin ;
2346    int shmmni ;   2346    int shmmni ;
2347    int shmseg ;   2347    int shmseg ;
2348    int shmall ;   2348    int shmall ;
2349 };   2349 };
2350 struct vki_shm_info {   2350 struct vki_shm_info {
2351    int used_ids ;   2351    int used_ids ;
2352    unsigned long shm_tot ;   2352    unsigned long shm_tot ;
2353    unsigned long shm_rss ;   2353    unsigned long shm_rss ;
2354    unsigned long shm_swp ;   2354    unsigned long shm_swp ;
2355    unsigned long swap_attempts ;   2355    unsigned long swap_attempts ;
2356    unsigned long swap_successes ;   2356    unsigned long swap_successes ;
2357 };   2357 };
2358 struct vki_rtc_time {   2358 struct vki_rtc_time {
2359    int tm_sec ;   2359    int tm_sec ;
2360    int tm_min ;   2360    int tm_min ;
2361    int tm_hour ;   2361    int tm_hour ;
2362    int tm_mday ;   2362    int tm_mday ;
2363    int tm_mon ;   2363    int tm_mon ;
2364    int tm_year ;   2364    int tm_year ;
2365    int tm_wday ;   2365    int tm_wday ;
2366    int tm_yday ;   2366    int tm_yday ;
2367    int tm_isdst ;   2367    int tm_isdst ;
2368 };   2368 };
2369 struct __anonstruct_vki_isdn_net_ioctl_phone_91 {   2369 struct __anonstruct_vki_isdn_net_ioctl_phone_91 {
2370    char name[10] ;   2370    char name[10] ;
2371    char phone[32] ;   2371    char phone[32] ;
2372    int outgoing ;   2372    int outgoing ;
2373 };   2373 };
2374 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_91 vki_isdn_net_ioctl_phone;   2374 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_91 vki_isdn_net_ioctl_phone;
2375 struct vki_ppdev_frob_struct {   2375 struct vki_ppdev_frob_struct {
2376    unsigned char mask ;   2376    unsigned char mask ;
2377    unsigned char val ;   2377    unsigned char val ;
2378 };   2378 };
2379 struct vki_sg_io_hdr {   2379 struct vki_sg_io_hdr {
2380    int interface_id ;   2380    int interface_id ;
2381    int dxfer_direction ;   2381    int dxfer_direction ;
2382    unsigned char cmd_len ;   2382    unsigned char cmd_len ;
2383    unsigned char mx_sb_len ;   2383    unsigned char mx_sb_len ;
2384    unsigned short iovec_count ;   2384    unsigned short iovec_count ;
2385    unsigned int dxfer_len ;   2385    unsigned int dxfer_len ;
2386    void *dxferp ;   2386    void *dxferp ;
2387    unsigned char *cmdp ;   2387    unsigned char *cmdp ;
2388    void *sbp ;   2388    void *sbp ;
2389    unsigned int timeout ;   2389    unsigned int timeout ;
2390    unsigned int flags ;   2390    unsigned int flags ;
2391    int pack_id ;   2391    int pack_id ;
2392    void *usr_ptr ;   2392    void *usr_ptr ;
2393    unsigned char status ;   2393    unsigned char status ;
2394    unsigned char masked_status ;   2394    unsigned char masked_status ;
2395    unsigned char msg_status ;   2395    unsigned char msg_status ;
2396    unsigned char sb_len_wr ;   2396    unsigned char sb_len_wr ;
2397    unsigned short host_status ;   2397    unsigned short host_status ;
2398    unsigned short driver_status ;   2398    unsigned short driver_status ;
2399    int resid ;   2399    int resid ;
2400    unsigned int duration ;   2400    unsigned int duration ;
2401    unsigned int info ;   2401    unsigned int info ;
2402 };   2402 };
2403 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;   2403 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;
2404 struct vki_sg_scsi_id {   2404 struct vki_sg_scsi_id {
2405    int host_no ;   2405    int host_no ;
2406    int channel ;   2406    int channel ;
2407    int scsi_id ;   2407    int scsi_id ;
2408    int lun ;   2408    int lun ;
2409    int scsi_type ;   2409    int scsi_type ;
2410    short h_cmd_per_lun ;   2410    short h_cmd_per_lun ;
2411    short d_queue_depth ;   2411    short d_queue_depth ;
2412    int unused[2] ;   2412    int unused[2] ;
2413 };   2413 };
2414 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;   2414 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;
2415 struct vki_cdrom_msf0 {   2415 struct vki_cdrom_msf0 {
2416    __vki_u8 minute ;   2416    __vki_u8 minute ;
2417    __vki_u8 second ;   2417    __vki_u8 second ;
2418    __vki_u8 frame ;   2418    __vki_u8 frame ;
2419 };   2419 };
2420 union vki_cdrom_addr {   2420 union vki_cdrom_addr {
2421    struct vki_cdrom_msf0 msf ;   2421    struct vki_cdrom_msf0 msf ;
2422    int lba ;   2422    int lba ;
2423 };   2423 };
2424 struct vki_cdrom_msf {   2424 struct vki_cdrom_msf {
2425    __vki_u8 cdmsf_min0 ;   2425    __vki_u8 cdmsf_min0 ;
2426    __vki_u8 cdmsf_sec0 ;   2426    __vki_u8 cdmsf_sec0 ;
2427    __vki_u8 cdmsf_frame0 ;   2427    __vki_u8 cdmsf_frame0 ;
2428    __vki_u8 cdmsf_min1 ;   2428    __vki_u8 cdmsf_min1 ;
2429    __vki_u8 cdmsf_sec1 ;   2429    __vki_u8 cdmsf_sec1 ;
2430    __vki_u8 cdmsf_frame1 ;   2430    __vki_u8 cdmsf_frame1 ;
2431 };   2431 };
2432 struct vki_cdrom_tochdr {   2432 struct vki_cdrom_tochdr {
2433    __vki_u8 cdth_trk0 ;   2433    __vki_u8 cdth_trk0 ;
2434    __vki_u8 cdth_trk1 ;   2434    __vki_u8 cdth_trk1 ;
2435 };   2435 };
2436 struct vki_cdrom_volctrl {   2436 struct vki_cdrom_volctrl {
2437    __vki_u8 channel0 ;   2437    __vki_u8 channel0 ;
2438    __vki_u8 channel1 ;   2438    __vki_u8 channel1 ;
2439    __vki_u8 channel2 ;   2439    __vki_u8 channel2 ;
2440    __vki_u8 channel3 ;   2440    __vki_u8 channel3 ;
2441 };   2441 };
2442 struct vki_cdrom_subchnl {   2442 struct vki_cdrom_subchnl {
2443    __vki_u8 cdsc_format ;   2443    __vki_u8 cdsc_format ;
2444    __vki_u8 cdsc_audiostatus ;   2444    __vki_u8 cdsc_audiostatus ;
2445    __vki_u8 cdsc_adr : 4 ;   2445    __vki_u8 cdsc_adr : 4 ;
2446    __vki_u8 cdsc_ctrl : 4 ;   2446    __vki_u8 cdsc_ctrl : 4 ;
2447    __vki_u8 cdsc_trk ;   2447    __vki_u8 cdsc_trk ;
2448    __vki_u8 cdsc_ind ;   2448    __vki_u8 cdsc_ind ;
2449    union vki_cdrom_addr cdsc_absaddr ;   2449    union vki_cdrom_addr cdsc_absaddr ;
2450    union vki_cdrom_addr cdsc_reladdr ;   2450    union vki_cdrom_addr cdsc_reladdr ;
2451 };   2451 };
2452 struct vki_cdrom_tocentry {   2452 struct vki_cdrom_tocentry {
2453    __vki_u8 cdte_track ;   2453    __vki_u8 cdte_track ;
2454    __vki_u8 cdte_adr : 4 ;   2454    __vki_u8 cdte_adr : 4 ;
2455    __vki_u8 cdte_ctrl : 4 ;   2455    __vki_u8 cdte_ctrl : 4 ;
2456    __vki_u8 cdte_format ;   2456    __vki_u8 cdte_format ;
2457    union vki_cdrom_addr cdte_addr ;   2457    union vki_cdrom_addr cdte_addr ;
2458    __vki_u8 cdte_datamode ;   2458    __vki_u8 cdte_datamode ;
2459 };   2459 };
2460 struct vki_cdrom_read {   2460 struct vki_cdrom_read {
2461    int cdread_lba ;   2461    int cdread_lba ;
2462    char *cdread_bufaddr ;   2462    char *cdread_bufaddr ;
2463    int cdread_buflen ;   2463    int cdread_buflen ;
2464 };   2464 };
2465 struct vki_cdrom_read_audio {   2465 struct vki_cdrom_read_audio {
2466    union vki_cdrom_addr addr ;   2466    union vki_cdrom_addr addr ;
2467    __vki_u8 addr_format ;   2467    __vki_u8 addr_format ;
2468    int nframes ;   2468    int nframes ;
2469    __vki_u8 *buf ;   2469    __vki_u8 *buf ;
2470 };   2470 };
2471 struct vki_cdrom_multisession {   2471 struct vki_cdrom_multisession {
2472    union vki_cdrom_addr addr ;   2472    union vki_cdrom_addr addr ;
2473    __vki_u8 xa_flag ;   2473    __vki_u8 xa_flag ;
2474    __vki_u8 addr_format ;   2474    __vki_u8 addr_format ;
2475 };   2475 };
2476 struct vki_cdrom_mcn {   2476 struct vki_cdrom_mcn {
2477    __vki_u8 medium_catalog_number[14] ;   2477    __vki_u8 medium_catalog_number[14] ;
2478 };   2478 };
2479 struct vki_cdrom_generic_command {   2479 struct vki_cdrom_generic_command {
2480    unsigned char cmd[12] ;   2480    unsigned char cmd[12] ;
2481    unsigned char *buffer ;   2481    unsigned char *buffer ;
2482    unsigned int buflen ;   2482    unsigned int buflen ;
2483    int stat ;   2483    int stat ;
2484    void *sense ;   2484    void *sense ;
2485    unsigned char data_direction ;   2485    unsigned char data_direction ;
2486    int quiet ;   2486    int quiet ;
2487    int timeout ;   2487    int timeout ;
2488    void *reserved[1] ;   2488    void *reserved[1] ;
2489 };   2489 };
2490 struct vki_audio_buf_info {   2490 struct vki_audio_buf_info {
2491    int fragments ;   2491    int fragments ;
2492    int fragstotal ;   2492    int fragstotal ;
2493    int fragsize ;   2493    int fragsize ;
2494    int bytes ;   2494    int bytes ;
2495 };   2495 };
2496 typedef struct vki_audio_buf_info vki_audio_buf_info;   2496 typedef struct vki_audio_buf_info vki_audio_buf_info;
2497 struct vki_hd_geometry {   2497 struct vki_hd_geometry {
2498    unsigned char heads ;   2498    unsigned char heads ;
2499    unsigned char sectors ;   2499    unsigned char sectors ;
2500    unsigned short cylinders ;   2500    unsigned short cylinders ;
2501    unsigned long start ;   2501    unsigned long start ;
2502 };   2502 };
2503 struct vki_fb_fix_screeninfo {   2503 struct vki_fb_fix_screeninfo {
2504    char id[16] ;   2504    char id[16] ;
2505    unsigned long smem_start ;   2505    unsigned long smem_start ;
2506    __vki_u32 smem_len ;   2506    __vki_u32 smem_len ;
2507    __vki_u32 type ;   2507    __vki_u32 type ;
2508    __vki_u32 type_aux ;   2508    __vki_u32 type_aux ;
2509    __vki_u32 visual ;   2509    __vki_u32 visual ;
2510    __vki_u16 xpanstep ;   2510    __vki_u16 xpanstep ;
2511    __vki_u16 ypanstep ;   2511    __vki_u16 ypanstep ;
2512    __vki_u16 ywrapstep ;   2512    __vki_u16 ywrapstep ;
2513    __vki_u32 line_length ;   2513    __vki_u32 line_length ;
2514    unsigned long mmio_start ;   2514    unsigned long mmio_start ;
2515    __vki_u32 mmio_len ;   2515    __vki_u32 mmio_len ;
2516    __vki_u32 accel ;   2516    __vki_u32 accel ;
2517    __vki_u16 reserved[3] ;   2517    __vki_u16 reserved[3] ;
2518 };   2518 };
2519 struct vki_fb_bitfield {   2519 struct vki_fb_bitfield {
2520    __vki_u32 offset ;   2520    __vki_u32 offset ;
2521    __vki_u32 length ;   2521    __vki_u32 length ;
2522    __vki_u32 msb_right ;   2522    __vki_u32 msb_right ;
2523 };   2523 };
2524 struct vki_fb_var_screeninfo {   2524 struct vki_fb_var_screeninfo {
2525    __vki_u32 xres ;   2525    __vki_u32 xres ;
2526    __vki_u32 yres ;   2526    __vki_u32 yres ;
2527    __vki_u32 xres_virtual ;   2527    __vki_u32 xres_virtual ;
2528    __vki_u32 yres_virtual ;   2528    __vki_u32 yres_virtual ;
2529    __vki_u32 xoffset ;   2529    __vki_u32 xoffset ;
2530    __vki_u32 yoffset ;   2530    __vki_u32 yoffset ;
2531    __vki_u32 bits_per_pixel ;   2531    __vki_u32 bits_per_pixel ;
2532    __vki_u32 grayscale ;   2532    __vki_u32 grayscale ;
2533    struct vki_fb_bitfield red ;   2533    struct vki_fb_bitfield red ;
2534    struct vki_fb_bitfield green ;   2534    struct vki_fb_bitfield green ;
2535    struct vki_fb_bitfield blue ;   2535    struct vki_fb_bitfield blue ;
2536    struct vki_fb_bitfield transp ;   2536    struct vki_fb_bitfield transp ;
2537    __vki_u32 nonstd ;   2537    __vki_u32 nonstd ;
2538    __vki_u32 activate ;   2538    __vki_u32 activate ;
2539    __vki_u32 height ;   2539    __vki_u32 height ;
2540    __vki_u32 width ;   2540    __vki_u32 width ;
2541    __vki_u32 accel_flags ;   2541    __vki_u32 accel_flags ;
2542    __vki_u32 pixclock ;   2542    __vki_u32 pixclock ;
2543    __vki_u32 left_margin ;   2543    __vki_u32 left_margin ;
2544    __vki_u32 right_margin ;   2544    __vki_u32 right_margin ;
2545    __vki_u32 upper_margin ;   2545    __vki_u32 upper_margin ;
2546    __vki_u32 lower_margin ;   2546    __vki_u32 lower_margin ;
2547    __vki_u32 hsync_len ;   2547    __vki_u32 hsync_len ;
2548    __vki_u32 vsync_len ;   2548    __vki_u32 vsync_len ;
2549    __vki_u32 sync ;   2549    __vki_u32 sync ;
2550    __vki_u32 vmode ;   2550    __vki_u32 vmode ;
2551    __vki_u32 rotate ;   2551    __vki_u32 rotate ;
2552    __vki_u32 reserved[5] ;   2552    __vki_u32 reserved[5] ;
2553 };   2553 };
2554 struct vki_consolefontdesc {   2554 struct vki_consolefontdesc {
2555    unsigned short charcount ;   2555    unsigned short charcount ;
2556    unsigned short charheight ;   2556    unsigned short charheight ;
2557    char *chardata ;   2557    char *chardata ;
2558 };   2558 };
2559 struct vki_unipair {   2559 struct vki_unipair {
2560    unsigned short unicode ;   2560    unsigned short unicode ;
2561    unsigned short fontpos ;   2561    unsigned short fontpos ;
2562 };   2562 };
2563 struct vki_unimapdesc {   2563 struct vki_unimapdesc {
2564    unsigned short entry_ct ;   2564    unsigned short entry_ct ;
2565    struct vki_unipair *entries ;   2565    struct vki_unipair *entries ;
2566 };   2566 };
2567 struct vki_unimapinit {   2567 struct vki_unimapinit {
2568    unsigned short advised_hashsize ;   2568    unsigned short advised_hashsize ;
2569    unsigned short advised_hashstep ;   2569    unsigned short advised_hashstep ;
2570    unsigned short advised_hashlevel ;   2570    unsigned short advised_hashlevel ;
2571 };   2571 };
2572 struct vki_kbentry {   2572 struct vki_kbentry {
2573    unsigned char kb_table ;   2573    unsigned char kb_table ;
2574    unsigned char kb_index ;   2574    unsigned char kb_index ;
2575    unsigned short kb_value ;   2575    unsigned short kb_value ;
2576 };   2576 };
2577 struct vki_kbsentry {   2577 struct vki_kbsentry {
2578    unsigned char kb_func ;   2578    unsigned char kb_func ;
2579    unsigned char kb_string[512] ;   2579    unsigned char kb_string[512] ;
2580 };   2580 };
2581 struct vki_kbdiacr {   2581 struct vki_kbdiacr {
2582    unsigned char diacr ;   2582    unsigned char diacr ;
2583    unsigned char base ;   2583    unsigned char base ;
2584    unsigned char result ;   2584    unsigned char result ;
2585 };   2585 };
2586 struct vki_kbdiacrs {   2586 struct vki_kbdiacrs {
2587    unsigned int kb_cnt ;   2587    unsigned int kb_cnt ;
2588    struct vki_kbdiacr kbdiacr[256] ;   2588    struct vki_kbdiacr kbdiacr[256] ;
2589 };   2589 };
2590 struct vki_kbkeycode {   2590 struct vki_kbkeycode {
2591    unsigned int scancode ;   2591    unsigned int scancode ;
2592    unsigned int keycode ;   2592    unsigned int keycode ;
2593 };   2593 };
2594 struct vki_kbd_repeat {   2594 struct vki_kbd_repeat {
2595    int delay ;   2595    int delay ;
2596    int period ;   2596    int period ;
2597 };   2597 };
2598 struct vki_console_font_op {   2598 struct vki_console_font_op {
2599    unsigned int op ;   2599    unsigned int op ;
2600    unsigned int flags ;   2600    unsigned int flags ;
2601    unsigned int width ;   2601    unsigned int width ;
2602    unsigned int height ;   2602    unsigned int height ;
2603    unsigned int charcount ;   2603    unsigned int charcount ;
2604    unsigned char *data ;   2604    unsigned char *data ;
2605 };   2605 };
2606 typedef __vki_kernel_uid32_t vki_qid_t;   2606 typedef __vki_kernel_uid32_t vki_qid_t;
2607 struct __anonstruct_93 {   2607 struct __anonstruct_93 {
2608    int  : 0 ;   2608    int  : 0 ;
2609 };   2609 };
2610 struct __anonstruct_94 {   2610 struct __anonstruct_94 {
2611    int  : 0 ;   2611    int  : 0 ;
2612 };   2612 };
2613 enum __anonenum_92 {   2613 enum __anonenum_92 {
2614     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,   2614     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,
2615     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,   2615     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,
2616     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,   2616     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,
2617     VKI_SNDRV_PCM_IOCTL_RESET = 16705,   2617     VKI_SNDRV_PCM_IOCTL_RESET = 16705,
2618     VKI_SNDRV_PCM_IOCTL_START = 16706,   2618     VKI_SNDRV_PCM_IOCTL_START = 16706,
2619     VKI_SNDRV_PCM_IOCTL_DROP = 16707,   2619     VKI_SNDRV_PCM_IOCTL_DROP = 16707,
2620     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,   2620     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,
2621     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,   2621     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,
2622     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,   2622     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,
2623     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,   2623     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,
2624     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,   2624     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,
2625     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737   2625     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737
2626 } ;   2626 } ;
2627 enum __anonenum_95 {   2627 enum __anonenum_95 {
2628     VKI_SNDRV_TIMER_IOCTL_START = 21664,   2628     VKI_SNDRV_TIMER_IOCTL_START = 21664,
2629     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,   2629     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,
2630     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,   2630     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,
2631     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667   2631     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667
2632 } ;   2632 } ;
2633 struct vki_serial_icounter_struct {   2633 struct vki_serial_icounter_struct {
2634    int cts ;   2634    int cts ;
2635    int dsr ;   2635    int dsr ;
2636    int rng ;   2636    int rng ;
2637    int dcd ;   2637    int dcd ;
2638    int rx ;   2638    int rx ;
2639    int tx ;   2639    int tx ;
2640    int frame ;   2640    int frame ;
2641    int overrun ;   2641    int overrun ;
2642    int parity ;   2642    int parity ;
2643    int brk ;   2643    int brk ;
2644    int buf_overrun ;   2644    int buf_overrun ;
2645    int reserved[9] ;   2645    int reserved[9] ;
2646 };   2646 };
2647 struct vki_vt_mode {   2647 struct vki_vt_mode {
2648    char mode ;   2648    char mode ;
2649    char waitv ;   2649    char waitv ;
2650    short relsig ;   2650    short relsig ;
2651    short acqsig ;   2651    short acqsig ;
2652    short frsig ;   2652    short frsig ;
2653 };   2653 };
2654 struct vki_vt_stat {   2654 struct vki_vt_stat {
2655    unsigned short v_active ;   2655    unsigned short v_active ;
2656    unsigned short v_signal ;   2656    unsigned short v_signal ;
2657    unsigned short v_state ;   2657    unsigned short v_state ;
2658 };   2658 };
2659 struct vki_vt_sizes {   2659 struct vki_vt_sizes {
2660    unsigned short v_rows ;   2660    unsigned short v_rows ;
2661    unsigned short v_cols ;   2661    unsigned short v_cols ;
2662    unsigned short v_scrollsize ;   2662    unsigned short v_scrollsize ;
2663 };   2663 };
2664 struct vki_vt_consize {   2664 struct vki_vt_consize {
2665    unsigned short v_rows ;   2665    unsigned short v_rows ;
2666    unsigned short v_cols ;   2666    unsigned short v_cols ;
2667    unsigned short v_vlin ;   2667    unsigned short v_vlin ;
2668    unsigned short v_clin ;   2668    unsigned short v_clin ;
2669    unsigned short v_vcol ;   2669    unsigned short v_vcol ;
2670    unsigned short v_ccol ;   2670    unsigned short v_ccol ;
2671 };   2671 };
2672 struct vki_usbdevfs_ctrltransfer {   2672 struct vki_usbdevfs_ctrltransfer {
2673    __vki_u8 bRequestType ;   2673    __vki_u8 bRequestType ;
2674    __vki_u8 bRequest ;   2674    __vki_u8 bRequest ;
2675    __vki_u16 wValue ;   2675    __vki_u16 wValue ;
2676    __vki_u16 wIndex ;   2676    __vki_u16 wIndex ;
2677    __vki_u16 wLength ;   2677    __vki_u16 wLength ;
2678    __vki_u32 timeout ;   2678    __vki_u32 timeout ;
2679    void *data ;   2679    void *data ;
2680 };   2680 };
2681 struct vki_usbdevfs_bulktransfer {   2681 struct vki_usbdevfs_bulktransfer {
2682    unsigned int ep ;   2682    unsigned int ep ;
2683    unsigned int len ;   2683    unsigned int len ;
2684    unsigned int timeout ;   2684    unsigned int timeout ;
2685    void *data ;   2685    void *data ;
2686 };   2686 };
2687 struct vki_usbdevfs_getdriver {   2687 struct vki_usbdevfs_getdriver {
2688    unsigned int interface ;   2688    unsigned int interface ;
2689    char driver[256] ;   2689    char driver[256] ;
2690 };   2690 };
2691 struct vki_usbdevfs_connectinfo {   2691 struct vki_usbdevfs_connectinfo {
2692    unsigned int devnum ;   2692    unsigned int devnum ;
2693    unsigned char slow ;   2693    unsigned char slow ;
2694 };   2694 };
2695 struct vki_usbdevfs_iso_packet_desc {   2695 struct vki_usbdevfs_iso_packet_desc {
2696    unsigned int length ;   2696    unsigned int length ;
2697    unsigned int actual_length ;   2697    unsigned int actual_length ;
2698    unsigned int status ;   2698    unsigned int status ;
2699 };   2699 };
2700 struct vki_usbdevfs_urb {   2700 struct vki_usbdevfs_urb {
2701    unsigned char type ;   2701    unsigned char type ;
2702    unsigned char endpoint ;   2702    unsigned char endpoint ;
2703    int status ;   2703    int status ;
2704    unsigned int flags ;   2704    unsigned int flags ;
2705    void *buffer ;   2705    void *buffer ;
2706    int buffer_length ;   2706    int buffer_length ;
2707    int actual_length ;   2707    int actual_length ;
2708    int start_frame ;   2708    int start_frame ;
2709    int number_of_packets ;   2709    int number_of_packets ;
2710    int error_count ;   2710    int error_count ;
2711    unsigned int signr ;   2711    unsigned int signr ;
2712    void *usercontext ;   2712    void *usercontext ;
2713    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;   2713    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;
2714 };   2714 };
2715 struct vki_usbdevfs_ioctl {   2715 struct vki_usbdevfs_ioctl {
2716    int ifno ;   2716    int ifno ;
2717    int ioctl_code ;   2717    int ioctl_code ;
2718    void *data ;   2718    void *data ;
2719 };   2719 };
2720 struct vki_usbdevfs_setuppacket {   2720 struct vki_usbdevfs_setuppacket {
2721    __vki_u8 bRequestType ;   2721    __vki_u8 bRequestType ;
2722    __vki_u8 bRequest ;   2722    __vki_u8 bRequest ;
2723    __vki_u16 wValue ;   2723    __vki_u16 wValue ;
2724    __vki_u16 wIndex ;   2724    __vki_u16 wIndex ;
2725    __vki_u16 wLength ;   2725    __vki_u16 wLength ;
2726 };   2726 };
2727 typedef vki_int32_t vki_key_serial_t;   2727 typedef vki_int32_t vki_key_serial_t;
2728 typedef vki_uint32_t vki_key_perm_t;   2728 typedef vki_uint32_t vki_key_perm_t;
2729 struct vki_iw_param {   2729 struct vki_iw_param {
2730    __vki_s32 value ;   2730    __vki_s32 value ;
2731    __vki_u8 fixed ;   2731    __vki_u8 fixed ;
2732    __vki_u8 disabled ;   2732    __vki_u8 disabled ;
2733    __vki_u16 flags ;   2733    __vki_u16 flags ;
2734 };   2734 };
2735 struct vki_iw_point {   2735 struct vki_iw_point {
2736    void *pointer ;   2736    void *pointer ;
2737    __vki_u16 length ;   2737    __vki_u16 length ;
2738    __vki_u16 flags ;   2738    __vki_u16 flags ;
2739 };   2739 };
2740 struct vki_iw_freq {   2740 struct vki_iw_freq {
2741    __vki_s32 m ;   2741    __vki_s32 m ;
2742    __vki_s16 e ;   2742    __vki_s16 e ;
2743    __vki_u8 i ;   2743    __vki_u8 i ;
2744    __vki_u8 flags ;   2744    __vki_u8 flags ;
2745 };   2745 };
2746 struct vki_iw_quality {   2746 struct vki_iw_quality {
2747    __vki_u8 qual ;   2747    __vki_u8 qual ;
2748    __vki_u8 level ;   2748    __vki_u8 level ;
2749    __vki_u8 noise ;   2749    __vki_u8 noise ;
2750    __vki_u8 updated ;   2750    __vki_u8 updated ;
2751 };   2751 };
2752 union vki_iwreq_data {   2752 union vki_iwreq_data {
2753    char name[16] ;   2753    char name[16] ;
2754    struct vki_iw_point essid ;   2754    struct vki_iw_point essid ;
2755    struct vki_iw_param nwid ;   2755    struct vki_iw_param nwid ;
2756    struct vki_iw_freq freq ;   2756    struct vki_iw_freq freq ;
2757    struct vki_iw_param sens ;   2757    struct vki_iw_param sens ;
2758    struct vki_iw_param bitrate ;   2758    struct vki_iw_param bitrate ;
2759    struct vki_iw_param txpower ;   2759    struct vki_iw_param txpower ;
2760    struct vki_iw_param rts ;   2760    struct vki_iw_param rts ;
2761    struct vki_iw_param frag ;   2761    struct vki_iw_param frag ;
2762    __vki_u32 mode ;   2762    __vki_u32 mode ;
2763    struct vki_iw_param retry ;   2763    struct vki_iw_param retry ;
2764    struct vki_iw_point encoding ;   2764    struct vki_iw_point encoding ;
2765    struct vki_iw_param power ;   2765    struct vki_iw_param power ;
2766    struct vki_iw_quality qual ;   2766    struct vki_iw_quality qual ;
2767    struct vki_sockaddr ap_addr ;   2767    struct vki_sockaddr ap_addr ;
2768    struct vki_sockaddr addr ;   2768    struct vki_sockaddr addr ;
2769    struct vki_iw_param param ;   2769    struct vki_iw_param param ;
2770    struct vki_iw_point data ;   2770    struct vki_iw_point data ;
2771 };   2771 };
2772 union __anonunion_ifr_ifrn_96 {   2772 union __anonunion_ifr_ifrn_96 {
2773    char ifrn_name[16] ;   2773    char ifrn_name[16] ;
2774 };   2774 };
2775 struct vki_iwreq {   2775 struct vki_iwreq {
2776    union __anonunion_ifr_ifrn_96 ifr_ifrn ;   2776    union __anonunion_ifr_ifrn_96 ifr_ifrn ;
2777    union vki_iwreq_data u ;   2777    union vki_iwreq_data u ;
2778 };   2778 };
2779 union __anonunion____missing_field_name_97 {   2779 union __anonunion____missing_field_name_97 {
2780    __vki_u64 sample_period ;   2780    __vki_u64 sample_period ;
2781    __vki_u64 sample_freq ;   2781    __vki_u64 sample_freq ;
2782 };   2782 };
2783 union __anonunion____missing_field_name_98 {   2783 union __anonunion____missing_field_name_98 {
2784    __vki_u32 wakeup_events ;   2784    __vki_u32 wakeup_events ;
2785    __vki_u32 wakeup_watermark ;   2785    __vki_u32 wakeup_watermark ;
2786 };   2786 };
2787 union __anonunion____missing_field_name_99 {   2787 union __anonunion____missing_field_name_99 {
2788    __vki_u64 bp_addr ;   2788    __vki_u64 bp_addr ;
2789    __vki_u64 config1 ;   2789    __vki_u64 config1 ;
2790 };   2790 };
2791 union __anonunion____missing_field_name_100 {   2791 union __anonunion____missing_field_name_100 {
2792    __vki_u64 bp_len ;   2792    __vki_u64 bp_len ;
2793    __vki_u64 config2 ;   2793    __vki_u64 config2 ;
2794 };   2794 };
2795 struct vki_perf_event_attr {   2795 struct vki_perf_event_attr {
2796    __vki_u32 type ;   2796    __vki_u32 type ;
2797    __vki_u32 size ;   2797    __vki_u32 size ;
2798    __vki_u64 config ;   2798    __vki_u64 config ;
2799    union __anonunion____missing_field_name_97 __annonCompField1 ;   2799    union __anonunion____missing_field_name_97 __annonCompField1 ;
2800    __vki_u64 sample_type ;   2800    __vki_u64 sample_type ;
2801    __vki_u64 read_format ;   2801    __vki_u64 read_format ;
2802    __vki_u64 disabled : 1 ;   2802    __vki_u64 disabled : 1 ;
2803    __vki_u64 inherit : 1 ;   2803    __vki_u64 inherit : 1 ;
2804    __vki_u64 pinned : 1 ;   2804    __vki_u64 pinned : 1 ;
2805    __vki_u64 exclusive : 1 ;   2805    __vki_u64 exclusive : 1 ;
2806    __vki_u64 exclude_user : 1 ;   2806    __vki_u64 exclude_user : 1 ;
2807    __vki_u64 exclude_kernel : 1 ;   2807    __vki_u64 exclude_kernel : 1 ;
2808    __vki_u64 exclude_hv : 1 ;   2808    __vki_u64 exclude_hv : 1 ;
2809    __vki_u64 exclude_idle : 1 ;   2809    __vki_u64 exclude_idle : 1 ;
2810    __vki_u64 mmap : 1 ;   2810    __vki_u64 mmap : 1 ;
2811    __vki_u64 comm : 1 ;   2811    __vki_u64 comm : 1 ;
2812    __vki_u64 freq : 1 ;   2812    __vki_u64 freq : 1 ;
2813    __vki_u64 inherit_stat : 1 ;   2813    __vki_u64 inherit_stat : 1 ;
2814    __vki_u64 enable_on_exec : 1 ;   2814    __vki_u64 enable_on_exec : 1 ;
2815    __vki_u64 task : 1 ;   2815    __vki_u64 task : 1 ;
2816    __vki_u64 watermark : 1 ;   2816    __vki_u64 watermark : 1 ;
2817    __vki_u64 precise_ip : 2 ;   2817    __vki_u64 precise_ip : 2 ;
2818    __vki_u64 mmap_data : 1 ;   2818    __vki_u64 mmap_data : 1 ;
2819    __vki_u64 sample_id_all : 1 ;   2819    __vki_u64 sample_id_all : 1 ;
2820    __vki_u64 __reserved_1 : 45 ;   2820    __vki_u64 __reserved_1 : 45 ;
2821    union __anonunion____missing_field_name_98 __annonCompField2 ;   2821    union __anonunion____missing_field_name_98 __annonCompField2 ;
2822    __vki_u32 bp_type ;   2822    __vki_u32 bp_type ;
2823    union __anonunion____missing_field_name_99 __annonCompField3 ;   2823    union __anonunion____missing_field_name_99 __annonCompField3 ;
2824    union __anonunion____missing_field_name_100 __annonCompField4 ;   2824    union __anonunion____missing_field_name_100 __annonCompField4 ;
2825 };   2825 };
2826 struct vki_getcpu_cache {   2826 struct vki_getcpu_cache {
2827    unsigned long blob[128U / sizeof(long )] ;   2827    unsigned long blob[128U / sizeof(long )] ;
2828 };   2828 };
2829 typedef int __jmp_buf[6];   2829 typedef int __jmp_buf[6];
2830 typedef int __sig_atomic_t;   2830 typedef int __sig_atomic_t;
2831 struct __anonstruct___sigset_t_101 {   2831 struct __anonstruct___sigset_t_101 {
2832    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;   2832    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;
2833 };   2833 };
2834 typedef struct __anonstruct___sigset_t_101 __sigset_t;   2834 typedef struct __anonstruct___sigset_t_101 __sigset_t;
2835 struct __jmp_buf_tag {   2835 struct __jmp_buf_tag {
2836    __jmp_buf __jmpbuf ;   2836    __jmp_buf __jmpbuf ;
2837    int __mask_was_saved ;   2837    int __mask_was_saved ;
2838    __sigset_t __saved_mask ;   2838    __sigset_t __saved_mask ;
2839 };   2839 };
2840 typedef struct __jmp_buf_tag jmp_buf[1];   2840 typedef struct __jmp_buf_tag jmp_buf[1];
2841 typedef struct __jmp_buf_tag sigjmp_buf[1];   2841 typedef struct __jmp_buf_tag sigjmp_buf[1];
2842 enum ThreadStatus {   2842 enum ThreadStatus {
2843     VgTs_Empty = 0,   2843     VgTs_Empty = 0,
2844     VgTs_Init = 1,   2844     VgTs_Init = 1,
2845     VgTs_Runnable = 2,   2845     VgTs_Runnable = 2,
2846     VgTs_WaitSys = 3,   2846     VgTs_WaitSys = 3,
2847     VgTs_Yielding = 4,   2847     VgTs_Yielding = 4,
2848     VgTs_Zombie = 5   2848     VgTs_Zombie = 5
2849 } ;   2849 } ;
2850 typedef enum ThreadStatus ThreadStatus;   2850 typedef enum ThreadStatus ThreadStatus;
2851 enum __anonenum_VgSchedReturnCode_102 {   2851 enum __anonenum_VgSchedReturnCode_102 {
2852     VgSrc_None = 0,   2852     VgSrc_None = 0,
2853     VgSrc_ExitThread = 1,   2853     VgSrc_ExitThread = 1,
2854     VgSrc_ExitProcess = 2,   2854     VgSrc_ExitProcess = 2,
2855     VgSrc_FatalSig = 3   2855     VgSrc_FatalSig = 3
2856 } ;   2856 } ;
2857 typedef enum __anonenum_VgSchedReturnCode_102 VgSchedReturnCode;   2857 typedef enum __anonenum_VgSchedReturnCode_102 VgSchedReturnCode;
2858 typedef VexGuestX86State VexGuestArchState;   2858 typedef VexGuestX86State VexGuestArchState;
2859 struct SyscallStatus;   2859 struct SyscallStatus;
2860 struct SyscallStatus;   2860 struct SyscallStatus;
2861 struct SyscallArgs;   2861 struct SyscallArgs;
2862 struct SyscallArgs;   2862 struct SyscallArgs;
2863 struct __anonstruct_ThreadArchState_103 {   2863 struct __anonstruct_ThreadArchState_103 {
2864    VexGuestArchState vex  __attribute__((__aligned__(16))) ;   2864    VexGuestArchState vex  __attribute__((__aligned__(16))) ;
2865    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;   2865    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;
2866    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;   2866    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;
2867    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;   2867    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;
2868 };   2868 };
2869 typedef struct __anonstruct_ThreadArchState_103 ThreadArchState;   2869 typedef struct __anonstruct_ThreadArchState_103 ThreadArchState;
2870 struct __anonstruct_ThreadOSstate_104 {   2870 struct __anonstruct_ThreadOSstate_104 {
2871    Int lwpid ;   2871    Int lwpid ;
2872    Int threadgroup ;   2872    Int threadgroup ;
2873    ThreadId parent ;   2873    ThreadId parent ;
2874    Addr valgrind_stack_base ;   2874    Addr valgrind_stack_base ;
2875    Addr valgrind_stack_init_SP ;   2875    Addr valgrind_stack_init_SP ;
2876    Word exitcode ;   2876    Word exitcode ;
2877    Int fatalsig ;   2877    Int fatalsig ;
2878 };   2878 };
2879 typedef struct __anonstruct_ThreadOSstate_104 ThreadOSstate;   2879 typedef struct __anonstruct_ThreadOSstate_104 ThreadOSstate;
2880 struct SigQueue;   2880 struct SigQueue;
2881 struct __anonstruct_ThreadState_105 {   2881 struct __anonstruct_ThreadState_105 {
2882    ThreadId tid ;   2882    ThreadId tid ;
2883    ThreadStatus status ;   2883    ThreadStatus status ;
2884    VgSchedReturnCode exitreason ;   2884    VgSchedReturnCode exitreason ;
2885    ThreadArchState arch ;   2885    ThreadArchState arch ;
2886    vki_sigset_t sig_mask ;   2886    vki_sigset_t sig_mask ;
2887    vki_sigset_t tmp_sig_mask ;   2887    vki_sigset_t tmp_sig_mask ;
2888    struct SigQueue *sig_queue ;   2888    struct SigQueue *sig_queue ;
2889    SizeT client_stack_szB ;   2889    SizeT client_stack_szB ;
2890    Addr client_stack_highest_word ;   2890    Addr client_stack_highest_word ;
2891    vki_stack_t altstack ;   2891    vki_stack_t altstack ;
2892    ThreadOSstate os_state ;   2892    ThreadOSstate os_state ;
2893    Bool sched_jmpbuf_valid ;   2893    Bool sched_jmpbuf_valid ;
2894    jmp_buf sched_jmpbuf ;   2894    jmp_buf sched_jmpbuf ;
2895 };   2895 };
2896 typedef struct __anonstruct_ThreadState_105 ThreadState;   2896 typedef struct __anonstruct_ThreadState_105 ThreadState;
2897 enum __anonenum_SegKind_106 {   2897 enum __anonenum_SegKind_106 {
2898     SkFree = 0,   2898     SkFree = 0,
2899     SkAnonC = 1,   2899     SkAnonC = 1,
2900     SkAnonV = 2,   2900     SkAnonV = 2,
2901     SkFileC = 3,   2901     SkFileC = 3,
2902     SkFileV = 4,   2902     SkFileV = 4,
2903     SkShmC = 5,   2903     SkShmC = 5,
2904     SkResvn = 6   2904     SkResvn = 6
2905 } ;   2905 } ;
2906 typedef enum __anonenum_SegKind_106 SegKind;   2906 typedef enum __anonenum_SegKind_106 SegKind;
2907 enum __anonenum_ShrinkMode_107 {   2907 enum __anonenum_ShrinkMode_107 {
2908     SmLower = 0,   2908     SmLower = 0,
2909     SmFixed = 1,   2909     SmFixed = 1,
2910     SmUpper = 2   2910     SmUpper = 2
2911 } ;   2911 } ;
2912 typedef enum __anonenum_ShrinkMode_107 ShrinkMode;   2912 typedef enum __anonenum_ShrinkMode_107 ShrinkMode;
2913 struct __anonstruct_NSegment_108 {   2913 struct __anonstruct_NSegment_108 {
2914    SegKind kind ;   2914    SegKind kind ;
2915    Addr start ;   2915    Addr start ;
2916    Addr end ;   2916    Addr end ;
2917    ShrinkMode smode ;   2917    ShrinkMode smode ;
2918    ULong dev ;   2918    ULong dev ;
2919    ULong ino ;   2919    ULong ino ;
2920    Off64T offset ;   2920    Off64T offset ;
2921    UInt mode ;   2921    UInt mode ;
2922    Int fnIdx ;   2922    Int fnIdx ;
2923    Bool hasR ;   2923    Bool hasR ;
2924    Bool hasW ;   2924    Bool hasW ;
2925    Bool hasX ;   2925    Bool hasX ;
2926    Bool hasT ;   2926    Bool hasT ;
2927    Bool isCH ;   2927    Bool isCH ;
2928    Bool mark ;   2928    Bool mark ;
2929 };   2929 };
2930 typedef struct __anonstruct_NSegment_108 NSegment;   2930 typedef struct __anonstruct_NSegment_108 NSegment;
2931 enum __anonenum_rkind_110 {   2931 enum __anonenum_rkind_110 {
2932     MFixed = 0,   2932     MFixed = 0,
2933     MHint = 1,   2933     MHint = 1,
2934     MAny = 2   2934     MAny = 2
2935 } ;   2935 } ;
2936 struct __anonstruct_MapRequest_109 {   2936 struct __anonstruct_MapRequest_109 {
2937    enum __anonenum_rkind_110 rkind ;   2937    enum __anonenum_rkind_110 rkind ;
2938    Addr start ;   2938    Addr start ;
2939    Addr len ;   2939    Addr len ;
2940 };   2940 };
2941 typedef struct __anonstruct_MapRequest_109 MapRequest;   2941 typedef struct __anonstruct_MapRequest_109 MapRequest;
2942 struct __anonstruct_AixCodeSegChange_111 {   2942 struct __anonstruct_AixCodeSegChange_111 {
2943    Addr code_start ;   2943    Addr code_start ;
2944    Word code_len ;   2944    Word code_len ;
2945    Addr data_start ;   2945    Addr data_start ;
2946    Word data_len ;   2946    Word data_len ;
2947    UChar *file_name ;   2947    UChar *file_name ;
2948    UChar *mem_name ;   2948    UChar *mem_name ;
2949    Bool is_mainexe ;   2949    Bool is_mainexe ;
2950    Bool acquire ;   2950    Bool acquire ;
2951 };   2951 };
2952 typedef struct __anonstruct_AixCodeSegChange_111 AixCodeSegChange;   2952 typedef struct __anonstruct_AixCodeSegChange_111 AixCodeSegChange;
2953 struct __anonstruct_VgStack_112 {   2953 struct __anonstruct_VgStack_112 {
2954    HChar bytes[1064960] ;   2954    HChar bytes[1064960] ;
2955 };   2955 };
2956 typedef struct __anonstruct_VgStack_112 VgStack;   2956 typedef struct __anonstruct_VgStack_112 VgStack;
2957 struct __anonstruct_OrigFn_113 {   2957 struct __anonstruct_OrigFn_113 {
2958    unsigned int nraddr ;   2958    unsigned int nraddr ;
2959 };   2959 };
2960 typedef struct __anonstruct_OrigFn_113 OrigFn;   2960 typedef struct __anonstruct_OrigFn_113 OrigFn;
2961 enum __anonenum_Vg_ClientRequest_114 {   2961 enum __anonenum_Vg_ClientRequest_114 {
2962     VG_USERREQ__RUNNING_ON_VALGRIND = 4097,   2962     VG_USERREQ__RUNNING_ON_VALGRIND = 4097,
2963     VG_USERREQ__DISCARD_TRANSLATIONS = 4098,   2963     VG_USERREQ__DISCARD_TRANSLATIONS = 4098,
2964     VG_USERREQ__CLIENT_CALL0 = 4353,   2964     VG_USERREQ__CLIENT_CALL0 = 4353,
2965     VG_USERREQ__CLIENT_CALL1 = 4354,   2965     VG_USERREQ__CLIENT_CALL1 = 4354,
2966     VG_USERREQ__CLIENT_CALL2 = 4355,   2966     VG_USERREQ__CLIENT_CALL2 = 4355,
2967     VG_USERREQ__CLIENT_CALL3 = 4356,   2967     VG_USERREQ__CLIENT_CALL3 = 4356,
2968     VG_USERREQ__COUNT_ERRORS = 4609,   2968     VG_USERREQ__COUNT_ERRORS = 4609,
2969     VG_USERREQ__GDB_MONITOR_COMMAND = 4610,   2969     VG_USERREQ__GDB_MONITOR_COMMAND = 4610,
2970     VG_USERREQ__MALLOCLIKE_BLOCK = 4865,   2970     VG_USERREQ__MALLOCLIKE_BLOCK = 4865,
2971     VG_USERREQ__RESIZEINPLACE_BLOCK = 4875,   2971     VG_USERREQ__RESIZEINPLACE_BLOCK = 4875,
2972     VG_USERREQ__FREELIKE_BLOCK = 4866,   2972     VG_USERREQ__FREELIKE_BLOCK = 4866,
2973     VG_USERREQ__CREATE_MEMPOOL = 4867,   2973     VG_USERREQ__CREATE_MEMPOOL = 4867,
2974     VG_USERREQ__DESTROY_MEMPOOL = 4868,   2974     VG_USERREQ__DESTROY_MEMPOOL = 4868,
2975     VG_USERREQ__MEMPOOL_ALLOC = 4869,   2975     VG_USERREQ__MEMPOOL_ALLOC = 4869,
2976     VG_USERREQ__MEMPOOL_FREE = 4870,   2976     VG_USERREQ__MEMPOOL_FREE = 4870,
2977     VG_USERREQ__MEMPOOL_TRIM = 4871,   2977     VG_USERREQ__MEMPOOL_TRIM = 4871,
2978     VG_USERREQ__MOVE_MEMPOOL = 4872,   2978     VG_USERREQ__MOVE_MEMPOOL = 4872,
2979     VG_USERREQ__MEMPOOL_CHANGE = 4873,   2979     VG_USERREQ__MEMPOOL_CHANGE = 4873,
2980     VG_USERREQ__MEMPOOL_EXISTS = 4874,   2980     VG_USERREQ__MEMPOOL_EXISTS = 4874,
2981     VG_USERREQ__PRINTF = 5121,   2981     VG_USERREQ__PRINTF = 5121,
2982     VG_USERREQ__PRINTF_BACKTRACE = 5122,   2982     VG_USERREQ__PRINTF_BACKTRACE = 5122,
2983     VG_USERREQ__PRINTF_VALIST_BY_REF = 5123,   2983     VG_USERREQ__PRINTF_VALIST_BY_REF = 5123,
2984     VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF = 5124,   2984     VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF = 5124,
2985     VG_USERREQ__STACK_REGISTER = 5377,   2985     VG_USERREQ__STACK_REGISTER = 5377,
2986     VG_USERREQ__STACK_DEREGISTER = 5378,   2986     VG_USERREQ__STACK_DEREGISTER = 5378,
2987     VG_USERREQ__STACK_CHANGE = 5379,   2987     VG_USERREQ__STACK_CHANGE = 5379,
2988     VG_USERREQ__LOAD_PDB_DEBUGINFO = 5633,   2988     VG_USERREQ__LOAD_PDB_DEBUGINFO = 5633,
2989     VG_USERREQ__MAP_IP_TO_SRCLOC = 5889   2989     VG_USERREQ__MAP_IP_TO_SRCLOC = 5889
2990 } ;   2990 } ;
2991 typedef enum __anonenum_Vg_ClientRequest_114 Vg_ClientRequest;   2991 typedef enum __anonenum_Vg_ClientRequest_114 Vg_ClientRequest;
2992 enum __anonenum_Vg_InternalClientRequest_115 {   2992 enum __anonenum_Vg_InternalClientRequest_115 {
2993     VG_USERREQ__LIBC_FREERES_DONE = 12329,   2993     VG_USERREQ__LIBC_FREERES_DONE = 12329,
2994     VG_USERREQ__GET_MALLOCFUNCS = 12336,   2994     VG_USERREQ__GET_MALLOCFUNCS = 12336,
2995     VG_USERREQ__INTERNAL_PRINTF_VALIST_BY_REF = 12547,   2995     VG_USERREQ__INTERNAL_PRINTF_VALIST_BY_REF = 12547,
2996     VG_USERREQ__ADD_IFUNC_TARGET = 12548   2996     VG_USERREQ__ADD_IFUNC_TARGET = 12548
2997 } ;   2997 } ;
2998 typedef enum __anonenum_Vg_InternalClientRequest_115 Vg_InternalClientRequest;   2998 typedef enum __anonenum_Vg_InternalClientRequest_115 Vg_InternalClientRequest;
2999 struct _ExeContext;   2999 struct _ExeContext;
3000 typedef struct _ExeContext ExeContext;   3000 typedef struct _ExeContext ExeContext;
3001 enum __anonenum_VgRes_116 {   3001 enum __anonenum_VgRes_116 {
3002     Vg_LowRes = 0,   3002     Vg_LowRes = 0,
3003     Vg_MedRes = 1,   3003     Vg_MedRes = 1,
3004     Vg_HighRes = 2   3004     Vg_HighRes = 2
3005 } ;   3005 } ;
3006 typedef enum __anonenum_VgRes_116 VgRes;   3006 typedef enum __anonenum_VgRes_116 VgRes;
3007 typedef Int ErrorKind;   3007 typedef Int ErrorKind;
3008 struct _Error;   3008 struct _Error;
3009 typedef struct _Error Error;   3009 typedef struct _Error Error;
3010 typedef Int SuppKind;   3010 typedef Int SuppKind;
3011 struct _Supp;   3011 struct _Supp;
3012 typedef struct _Supp Supp;   3012 typedef struct _Supp Supp;
3013 enum __anonenum_CoreErrorKind_117 {   3013 enum __anonenum_CoreErrorKind_117 {
3014     ThreadErr = -1   3014     ThreadErr = -1
3015 } ;   3015 } ;
3016 typedef enum __anonenum_CoreErrorKind_117 CoreErrorKind;   3016 typedef enum __anonenum_CoreErrorKind_117 CoreErrorKind;
3017 enum __anonenum_PointKind_118 {   3017 enum __anonenum_PointKind_118 {
3018     software_breakpoint = 0,   3018     software_breakpoint = 0,
3019     hardware_breakpoint = 1,   3019     hardware_breakpoint = 1,
3020     write_watchpoint = 2,   3020     write_watchpoint = 2,
3021     read_watchpoint = 3,   3021     read_watchpoint = 3,
3022     access_watchpoint = 4   3022     access_watchpoint = 4
3023 } ;   3023 } ;
3024 typedef enum __anonenum_PointKind_118 PointKind;   3024 typedef enum __anonenum_PointKind_118 PointKind;
3025 enum __anonenum_kwd_report_error_119 {   3025 enum __anonenum_kwd_report_error_119 {
3026     kwd_report_none = 0,   3026     kwd_report_none = 0,
3027     kwd_report_all = 1,   3027     kwd_report_all = 1,
3028     kwd_report_duplicated_matches = 2   3028     kwd_report_duplicated_matches = 2
3029 } ;   3029 } ;
3030 typedef enum __anonenum_kwd_report_error_119 kwd_report_error;   3030 typedef enum __anonenum_kwd_report_error_119 kwd_report_error;
3031 enum __anonenum_FinishReason_120 {   3031 enum __anonenum_FinishReason_120 {
3032     orderly_finish = 0,   3032     orderly_finish = 0,
3033     reset_after_error = 1,   3033     reset_after_error = 1,
3034     reset_after_fork = 2   3034     reset_after_fork = 2
3035 } ;   3035 } ;
3036 typedef enum __anonenum_FinishReason_120 FinishReason;   3036 typedef enum __anonenum_FinishReason_120 FinishReason;
3037 struct __anonstruct_VgdbShared32_121 {   3037 struct __anonstruct_VgdbShared32_121 {
3038    int vgdb_pid ;   3038    int vgdb_pid ;
3039    int volatile   written_by_vgdb ;   3039    int volatile   written_by_vgdb ;
3040    int volatile   seen_by_valgrind ;   3040    int volatile   seen_by_valgrind ;
3041    Addr32 invoke_gdbserver ;   3041    Addr32 invoke_gdbserver ;
3042    Addr32 threads ;   3042    Addr32 threads ;
3043    int sizeof_ThreadState ;   3043    int sizeof_ThreadState ;
3044    int offset_status ;   3044    int offset_status ;
3045    int offset_lwpid ;   3045    int offset_lwpid ;
3046 };   3046 };
3047 typedef struct __anonstruct_VgdbShared32_121 VgdbShared32;   3047 typedef struct __anonstruct_VgdbShared32_121 VgdbShared32;
3048 struct __anonstruct_VgdbShared64_122 {   3048 struct __anonstruct_VgdbShared64_122 {
3049    int vgdb_pid ;   3049    int vgdb_pid ;
3050    int volatile   written_by_vgdb ;   3050    int volatile   written_by_vgdb ;
3051    int volatile   seen_by_valgrind ;   3051    int volatile   seen_by_valgrind ;
3052    Addr64 invoke_gdbserver ;   3052    Addr64 invoke_gdbserver ;
3053    Addr64 threads ;   3053    Addr64 threads ;
3054    int sizeof_ThreadState ;   3054    int sizeof_ThreadState ;
3055    int offset_status ;   3055    int offset_status ;
3056    int offset_lwpid ;   3056    int offset_lwpid ;
3057 };   3057 };
3058 typedef struct __anonstruct_VgdbShared64_122 VgdbShared64;   3058 typedef struct __anonstruct_VgdbShared64_122 VgdbShared64;
3059 typedef VgdbShared32 VgdbShared;   3059 typedef VgdbShared32 VgdbShared;
3060 enum __anonenum_VgMsgKind_123 {   3060 enum __anonenum_VgMsgKind_123 {
3061     Vg_FailMsg = 0,   3061     Vg_FailMsg = 0,
3062     Vg_UserMsg = 1,   3062     Vg_UserMsg = 1,
3063     Vg_DebugMsg = 2,   3063     Vg_DebugMsg = 2,
3064     Vg_ClientMsg = 3   3064     Vg_ClientMsg = 3
3065 } ;   3065 } ;
3066 typedef enum __anonenum_VgMsgKind_123 VgMsgKind;   3066 typedef enum __anonenum_VgMsgKind_123 VgMsgKind;
3067 struct __anonstruct_OutputSink_124 {   3067 struct __anonstruct_OutputSink_124 {
3068    Int fd ;   3068    Int fd ;
3069    Bool is_socket ;   3069    Bool is_socket ;
3070 };   3070 };
3071 typedef struct __anonstruct_OutputSink_124 OutputSink;   3071 typedef struct __anonstruct_OutputSink_124 OutputSink;
3072 typedef void (*vg_atfork_t)(ThreadId  );   3072 typedef void (*vg_atfork_t)(ThreadId  );
3073 typedef Int ArenaId;   3073 typedef Int ArenaId;
3074 struct vg_mallinfo {   3074 struct vg_mallinfo {
3075    int arena ;   3075    int arena ;
3076    int ordblks ;   3076    int ordblks ;
3077    int smblks ;   3077    int smblks ;
3078    int hblks ;   3078    int hblks ;
3079    int hblkhd ;   3079    int hblkhd ;
3080    int usmblks ;   3080    int usmblks ;
3081    int fsmblks ;   3081    int fsmblks ;
3082    int uordblks ;   3082    int uordblks ;
3083    int fordblks ;   3083    int fordblks ;
3084    int keepcost ;   3084    int keepcost ;
3085 };   3085 };
3086 enum __anonenum_VgVgdb_125 {   3086 enum __anonenum_VgVgdb_125 {
3087     Vg_VgdbNo = 0,   3087     Vg_VgdbNo = 0,
3088     Vg_VgdbYes = 1,   3088     Vg_VgdbYes = 1,
3089     Vg_VgdbFull = 2   3089     Vg_VgdbFull = 2
3090 } ;   3090 } ;
3091 typedef enum __anonenum_VgVgdb_125 VgVgdb;   3091 typedef enum __anonenum_VgVgdb_125 VgVgdb;
3092 enum __anonenum_VgSmc_126 {   3092 enum __anonenum_VgSmc_126 {
3093     Vg_SmcNone = 0,   3093     Vg_SmcNone = 0,
3094     Vg_SmcStack = 1,   3094     Vg_SmcStack = 1,
3095     Vg_SmcAll = 2,   3095     Vg_SmcAll = 2,
3096     Vg_SmcAllNonFile = 3   3096     Vg_SmcAllNonFile = 3
3097 } ;   3097 } ;
3098 typedef enum __anonenum_VgSmc_126 VgSmc;   3098 typedef enum __anonenum_VgSmc_126 VgSmc;
3099 struct vg_mallocfunc_info {   3099 struct vg_mallocfunc_info {
3100    void *(*tl_malloc)(ThreadId tid , SizeT n ) ;   3100    void *(*tl_malloc)(ThreadId tid , SizeT n ) ;
3101    void *(*tl___builtin_new)(ThreadId tid , SizeT n ) ;   3101    void *(*tl___builtin_new)(ThreadId tid , SizeT n ) ;
3102    void *(*tl___builtin_vec_new)(ThreadId tid , SizeT n ) ;   3102    void *(*tl___builtin_vec_new)(ThreadId tid , SizeT n ) ;
3103    void *(*tl_memalign)(ThreadId tid , SizeT align , SizeT n ) ;   3103    void *(*tl_memalign)(ThreadId tid , SizeT align , SizeT n ) ;
3104    void *(*tl_calloc)(ThreadId tid , SizeT nmemb , SizeT n ) ;   3104    void *(*tl_calloc)(ThreadId tid , SizeT nmemb , SizeT n ) ;
3105    void (*tl_free)(ThreadId tid , void *p ) ;   3105    void (*tl_free)(ThreadId tid , void *p ) ;
3106    void (*tl___builtin_delete)(ThreadId tid , void *p ) ;   3106    void (*tl___builtin_delete)(ThreadId tid , void *p ) ;
3107    void (*tl___builtin_vec_delete)(ThreadId tid , void *p ) ;   3107    void (*tl___builtin_vec_delete)(ThreadId tid , void *p ) ;
3108    void *(*tl_realloc)(ThreadId tid , void *p , SizeT size ) ;   3108    void *(*tl_realloc)(ThreadId tid , void *p , SizeT size ) ;
3109    SizeT (*tl_malloc_usable_size)(ThreadId tid , void *payload ) ;   3109    SizeT (*tl_malloc_usable_size)(ThreadId tid , void *payload ) ;
3110    void (*mallinfo)(ThreadId tid , struct vg_mallinfo *mi ) ;   3110    void (*mallinfo)(ThreadId tid , struct vg_mallinfo *mi ) ;
3111    Bool clo_trace_malloc ;   3111    Bool clo_trace_malloc ;
3112 };   3112 };
3113 typedef Addr *StackTrace;   3113 typedef Addr *StackTrace;
3114 struct __anonstruct_VgCallbackClosure_127 {   3114 struct __anonstruct_VgCallbackClosure_127 {
3115    Addr64 nraddr ;   3115    Addr64 nraddr ;
3116    Addr64 readdr ;   3116    Addr64 readdr ;
3117    ThreadId tid ;   3117    ThreadId tid ;
3118 };   3118 };
3119 typedef struct __anonstruct_VgCallbackClosure_127 VgCallbackClosure;   3119 typedef struct __anonstruct_VgCallbackClosure_127 VgCallbackClosure;
3120 enum __anonenum_CorePart_128 {   3120 enum __anonenum_CorePart_128 {
3121     Vg_CoreStartup = 1,   3121     Vg_CoreStartup = 1,
3122     Vg_CoreSignal = 2,   3122     Vg_CoreSignal = 2,
3123     Vg_CoreSysCall = 3,   3123     Vg_CoreSysCall = 3,
3124     Vg_CoreSysCallArgInMem = 4,   3124     Vg_CoreSysCallArgInMem = 4,
3125     Vg_CoreTranslate = 5,   3125     Vg_CoreTranslate = 5,
3126     Vg_CoreClientReq = 6   3126     Vg_CoreClientReq = 6
3127 } ;   3127 } ;
3128 typedef enum __anonenum_CorePart_128 CorePart;   3128 typedef enum __anonenum_CorePart_128 CorePart;
3129 struct __anonstruct_VgDetails_129 {   3129 struct __anonstruct_VgDetails_129 {
3130    Char *name ;   3130    Char *name ;
3131    Char *version ;   3131    Char *version ;
3132    Char *description ;   3132    Char *description ;
3133    Char *copyright_author ;   3133    Char *copyright_author ;
3134    Char *bug_reports_to ;   3134    Char *bug_reports_to ;
3135    UInt avg_translation_sizeB ;   3135    UInt avg_translation_sizeB ;
3136 };   3136 };
3137 typedef struct __anonstruct_VgDetails_129 VgDetails;   3137 typedef struct __anonstruct_VgDetails_129 VgDetails;
3138 struct __anonstruct_VgNeeds_130 {   3138 struct __anonstruct_VgNeeds_130 {
3139    Bool libc_freeres ;   3139    Bool libc_freeres ;
3140    Bool core_errors ;   3140    Bool core_errors ;
3141    Bool tool_errors ;   3141    Bool tool_errors ;
3142    Bool superblock_discards ;   3142    Bool superblock_discards ;
3143    Bool command_line_options ;   3143    Bool command_line_options ;
3144    Bool client_requests ;   3144    Bool client_requests ;
3145    Bool syscall_wrapper ;   3145    Bool syscall_wrapper ;
3146    Bool sanity_checks ;   3146    Bool sanity_checks ;
3147    Bool var_info ;   3147    Bool var_info ;
3148    Bool malloc_replacement ;   3148    Bool malloc_replacement ;
3149    Bool xml_output ;   3149    Bool xml_output ;
3150    Bool final_IR_tidy_pass ;   3150    Bool final_IR_tidy_pass ;
3151 };   3151 };
3152 typedef struct __anonstruct_VgNeeds_130 VgNeeds;   3152 typedef struct __anonstruct_VgNeeds_130 VgNeeds;
3153 struct __anonstruct_VgToolInterface_131 {   3153 struct __anonstruct_VgToolInterface_131 {
3154    void (*tool_pre_clo_init)(void) ;   3154    void (*tool_pre_clo_init)(void) ;
3155    void (*tool_post_clo_init)(void) ;   3155    void (*tool_post_clo_init)(void) ;
3156    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,   3156    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,
3157                             VexGuestExtents * , IRType  , IRType  ) ;   3157                             VexGuestExtents * , IRType  , IRType  ) ;
3158    void (*tool_fini)(Int  ) ;   3158    void (*tool_fini)(Int  ) ;
3159    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;   3159    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;
3160    void (*tool_before_pp_Error)(Error * ) ;   3160    void (*tool_before_pp_Error)(Error * ) ;
3161    void (*tool_pp_Error)(Error * ) ;   3161    void (*tool_pp_Error)(Error * ) ;
3162    Bool tool_show_ThreadIDs_for_errors ;   3162    Bool tool_show_ThreadIDs_for_errors ;
3163    UInt (*tool_update_extra)(Error * ) ;   3163    UInt (*tool_update_extra)(Error * ) ;
3164    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;   3164    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;
3165    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;   3165    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;
3166    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;   3166    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;
3167    Char *(*tool_get_error_name)(Error * ) ;   3167    Char *(*tool_get_error_name)(Error * ) ;
3168    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;   3168    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;
3169    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;   3169    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;
3170    Bool (*tool_process_cmd_line_option)(Char * ) ;   3170    Bool (*tool_process_cmd_line_option)(Char * ) ;
3171    void (*tool_print_usage)(void) ;   3171    void (*tool_print_usage)(void) ;
3172    void (*tool_print_debug_usage)(void) ;   3172    void (*tool_print_debug_usage)(void) ;
3173    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;   3173    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;
3174    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;   3174    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;
3175    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;   3175    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;
3176    Bool (*tool_cheap_sanity_check)(void) ;   3176    Bool (*tool_cheap_sanity_check)(void) ;
3177    Bool (*tool_expensive_sanity_check)(void) ;   3177    Bool (*tool_expensive_sanity_check)(void) ;
3178    void *(*tool_malloc)(ThreadId  , SizeT  ) ;   3178    void *(*tool_malloc)(ThreadId  , SizeT  ) ;
3179    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;   3179    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;
3180    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;   3180    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;
3181    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;   3181    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;
3182    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;   3182    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;
3183    void (*tool_free)(ThreadId  , void * ) ;   3183    void (*tool_free)(ThreadId  , void * ) ;
3184    void (*tool___builtin_delete)(ThreadId  , void * ) ;   3184    void (*tool___builtin_delete)(ThreadId  , void * ) ;
3185    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;   3185    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;
3186    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;   3186    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;
3187    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;   3187    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;
3188    SizeT tool_client_redzone_szB ;   3188    SizeT tool_client_redzone_szB ;
3189    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;   3189    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;
3190    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,   3190    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,
3191                                  ULong  ) ;   3191                                  ULong  ) ;
3192    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;   3192    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;
3193    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;   3193    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;
3194    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;   3194    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;
3195    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;   3195    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;
3196    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;   3196    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;
3197    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;   3197    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;
3198    void (*track_die_mem_brk)(Addr  , SizeT  ) ;   3198    void (*track_die_mem_brk)(Addr  , SizeT  ) ;
3199    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;   3199    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;
3200    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,   3200    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,
3201                                                                           UInt  ) ;   3201                                                                           UInt  ) ;
3202    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,   3202    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,
3203                                                                           UInt  ) ;   3203                                                                           UInt  ) ;
3204    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,   3204    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,
3205                                                                            UInt  ) ;   3205                                                                            UInt  ) ;
3206    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,   3206    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,
3207                                                                            UInt  ) ;   3207                                                                            UInt  ) ;
3208    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,   3208    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,
3209                                                                            UInt  ) ;   3209                                                                            UInt  ) ;
3210    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,   3210    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,
3211                                                                             UInt  ) ;   3211                                                                             UInt  ) ;
3212    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,   3212    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,
3213                                                                             UInt  ) ;   3213                                                                             UInt  ) ;
3214    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,   3214    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,
3215                                                                             UInt  ) ;   3215                                                                             UInt  ) ;
3216    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,   3216    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,
3217                                                                             UInt  ) ;   3217                                                                             UInt  ) ;
3218    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;   3218    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;
3219    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;   3219    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;
3220    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;   3220    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;
3221    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;   3221    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;
3222    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;   3222    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;
3223    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;   3223    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;
3224    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;   3224    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;
3225    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;   3225    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;
3226    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;   3226    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;
3227    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;   3227    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;
3228    void (*track_new_mem_stack)(Addr  , SizeT  ) ;   3228    void (*track_new_mem_stack)(Addr  , SizeT  ) ;
3229    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;   3229    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;
3230    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;   3230    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;
3231    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;   3231    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;
3232    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;   3232    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;
3233    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;   3233    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;
3234    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;   3234    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;
3235    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;   3235    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;
3236    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;   3236    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;
3237    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;   3237    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;
3238    void (*track_die_mem_stack)(Addr  , SizeT  ) ;   3238    void (*track_die_mem_stack)(Addr  , SizeT  ) ;
3239    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;   3239    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;
3240    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3240    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3241    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;   3241    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;
3242    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3242    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3243    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;   3243    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;
3244    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,   3244    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,
3245                               SizeT  ) ;   3245                               SizeT  ) ;
3246    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;   3246    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;
3247    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,   3247    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,
3248                                                   SizeT  , Addr  ) ;   3248                                                   SizeT  , Addr  ) ;
3249    void (*track_start_client_code)(ThreadId  , ULong  ) ;   3249    void (*track_start_client_code)(ThreadId  , ULong  ) ;
3250    void (*track_stop_client_code)(ThreadId  , ULong  ) ;   3250    void (*track_stop_client_code)(ThreadId  , ULong  ) ;
3251    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;   3251    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;
3252    void (*track_pre_thread_first_insn)(ThreadId  ) ;   3252    void (*track_pre_thread_first_insn)(ThreadId  ) ;
3253    void (*track_pre_thread_ll_exit)(ThreadId  ) ;   3253    void (*track_pre_thread_ll_exit)(ThreadId  ) ;
3254    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;   3254    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;
3255    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;   3255    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;
3256 };   3256 };
3257 typedef struct __anonstruct_VgToolInterface_131 VgToolInterface;   3257 typedef struct __anonstruct_VgToolInterface_131 VgToolInterface;
3258 struct __anonstruct_FastCacheEntry_132 {   3258 struct __anonstruct_FastCacheEntry_132 {
3259    Addr guest ;   3259    Addr guest ;
3260    Addr host ;   3260    Addr host ;
3261 };   3261 };
3262 typedef struct __anonstruct_FastCacheEntry_132 FastCacheEntry;   3262 typedef struct __anonstruct_FastCacheEntry_132 FastCacheEntry;
3263 struct _BBProfEntry {   3263 struct _BBProfEntry {
3264    Addr64 addr ;   3264    Addr64 addr ;
3265    ULong score ;   3265    ULong score ;
3266 };   3266 };
3267 typedef struct _BBProfEntry BBProfEntry;   3267 typedef struct _BBProfEntry BBProfEntry;
3268 enum __anonenum_Vg_FnNameKind_133 {   3268 enum __anonenum_Vg_FnNameKind_133 {
3269     Vg_FnNameNormal = 0,   3269     Vg_FnNameNormal = 0,
3270     Vg_FnNameMain = 1,   3270     Vg_FnNameMain = 1,
3271     Vg_FnNameBelowMain = 2   3271     Vg_FnNameBelowMain = 2
3272 } ;   3272 } ;
3273 typedef enum __anonenum_Vg_FnNameKind_133 Vg_FnNameKind;   3273 typedef enum __anonenum_Vg_FnNameKind_133 Vg_FnNameKind;
3274 struct __anonstruct_StackBlock_134 {   3274 struct __anonstruct_StackBlock_134 {
3275    PtrdiffT base ;   3275    PtrdiffT base ;
3276    SizeT szB ;   3276    SizeT szB ;
3277    Bool spRel ;   3277    Bool spRel ;
3278    Bool isVec ;   3278    Bool isVec ;
3279    HChar name[16] ;   3279    HChar name[16] ;
3280 };   3280 };
3281 typedef struct __anonstruct_StackBlock_134 StackBlock;   3281 typedef struct __anonstruct_StackBlock_134 StackBlock;
3282 struct __anonstruct_GlobalBlock_135 {   3282 struct __anonstruct_GlobalBlock_135 {
3283    Addr addr ;   3283    Addr addr ;
3284    SizeT szB ;   3284    SizeT szB ;
3285    Bool isVec ;   3285    Bool isVec ;
3286    HChar name[16] ;   3286    HChar name[16] ;
3287    HChar soname[16] ;   3287    HChar soname[16] ;
3288 };   3288 };
3289 typedef struct __anonstruct_GlobalBlock_135 GlobalBlock;   3289 typedef struct __anonstruct_GlobalBlock_135 GlobalBlock;
3290 struct _DebugInfo;   3290 struct _DebugInfo;
3291 typedef struct _DebugInfo DebugInfo;   3291 typedef struct _DebugInfo DebugInfo;
3292 enum __anonenum_VgSectKind_136 {   3292 enum __anonenum_VgSectKind_136 {
3293     Vg_SectUnknown = 0,   3293     Vg_SectUnknown = 0,
3294     Vg_SectText = 1,   3294     Vg_SectText = 1,
3295     Vg_SectData = 2,   3295     Vg_SectData = 2,
3296     Vg_SectBSS = 3,   3296     Vg_SectBSS = 3,
3297     Vg_SectGOT = 4,   3297     Vg_SectGOT = 4,
3298     Vg_SectPLT = 5,   3298     Vg_SectPLT = 5,
3299     Vg_SectGOTPLT = 6,   3299     Vg_SectGOTPLT = 6,
3300     Vg_SectOPD = 7   3300     Vg_SectOPD = 7
3301 } ;   3301 } ;
3302 typedef enum __anonenum_VgSectKind_136 VgSectKind;   3302 typedef enum __anonenum_VgSectKind_136 VgSectKind;
3303 struct __anonstruct_D3UnwindRegs_137 {   3303 struct __anonstruct_D3UnwindRegs_137 {
3304    Addr xip ;   3304    Addr xip ;
3305    Addr xsp ;   3305    Addr xsp ;
3306    Addr xbp ;   3306    Addr xbp ;
3307 };   3307 };
3308 typedef struct __anonstruct_D3UnwindRegs_137 D3UnwindRegs;   3308 typedef struct __anonstruct_D3UnwindRegs_137 D3UnwindRegs;
3309 struct __anonstruct_vg_sema_t_138 {   3309 struct __anonstruct_vg_sema_t_138 {
3310    Int pipe[2] ;   3310    Int pipe[2] ;
3311    Int owner_lwpid ;   3311    Int owner_lwpid ;
3312    Bool held_as_LL ;   3312    Bool held_as_LL ;
3313 };   3313 };
3314 typedef struct __anonstruct_vg_sema_t_138 vg_sema_t;   3314 typedef struct __anonstruct_vg_sema_t_138 vg_sema_t;
3315 union __anonunion_u_139 {   3315 union __anonunion_u_139 {
3316    va_list vargs ;   3316    va_list vargs ;
3317    unsigned long uw ;   3317    unsigned long uw ;
3318 };   3318 };
3319 union __anonunion_u_140 {   3319 union __anonunion_u_140 {
3320    va_list vargs ;   3320    va_list vargs ;
3321    unsigned long uw ;   3321    unsigned long uw ;
3322 };   3322 };
3323 __inline static Bool toBool(Int x )   3323 __inline static Bool toBool(Int x )
3324 {   3324 {
3325   Int r ;   3325   Int r ;
3326   int tmp ;   3326   int tmp ;
3327     3327  
3328   {   3328   {
3329   if (x == 0) {   3329   if (x == 0) {
3330     tmp = (int )((Bool )0);   3330     tmp = (int )((Bool )0);
3331   } else {   3331   } else {
3332     tmp = (int )((Bool )1);   3332     tmp = (int )((Bool )1);
3333   }   3333   }
3334   r = tmp;   3334   r = tmp;
3335   return ((Bool )r);   3335   return ((Bool )r);
3336 }   3336 }
3337 }   3337 }
3338 __inline static UChar toUChar(Int x )   3338 __inline static UChar toUChar(Int x )
3339 {   3339 {
3340     3340  
3341     3341  
3342   {   3342   {
3343   x &= 255;   3343   x &= 255;
3344   return ((UChar )x);   3344   return ((UChar )x);
3345 }   3345 }
3346 }   3346 }
3347 __inline static HChar toHChar(Int x )   3347 __inline static HChar toHChar(Int x )
3348 {   3348 {
3349     3349  
3350     3350  
3351   {   3351   {
3352   x &= 255;   3352   x &= 255;
3353   return ((HChar )x);   3353   return ((HChar )x);
3354 }   3354 }
3355 }   3355 }
3356 __inline static UShort toUShort(Int x )   3356 __inline static UShort toUShort(Int x )
3357 {   3357 {
3358     3358  
3359     3359  
3360   {   3360   {
3361   x &= 65535;   3361   x &= 65535;
3362   return ((UShort )x);   3362   return ((UShort )x);
3363 }   3363 }
3364 }   3364 }
3365 __inline static Short toShort(Int x )   3365 __inline static Short toShort(Int x )
3366 {   3366 {
3367     3367  
3368     3368  
3369   {   3369   {
3370   x &= 65535;   3370   x &= 65535;
3371   return ((Short )x);   3371   return ((Short )x);
3372 }   3372 }
3373 }   3373 }
3374 __inline static UInt toUInt(Long x )   3374 __inline static UInt toUInt(Long x )
3375 {   3375 {
3376     3376  
3377     3377  
3378   {   3378   {
3379   x &= 4294967295LL;   3379   x &= 4294967295LL;
3380   return ((UInt )x);   3380   return ((UInt )x);
3381 }   3381 }
3382 }   3382 }
3383 __inline static ULong Ptr_to_ULong(void *p )   3383 __inline static ULong Ptr_to_ULong(void *p )
3384 {   3384 {
3385   UInt w ;   3385   UInt w ;
3386     3386  
3387   {   3387   {
3388   w = (UInt )p;   3388   w = (UInt )p;
3389   return ((ULong )w);   3389   return ((ULong )w);
3390 }   3390 }
3391 }   3391 }
3392 __inline static void *ULong_to_Ptr(ULong n )   3392 __inline static void *ULong_to_Ptr(ULong n )
3393 {   3393 {
3394   UInt w ;   3394   UInt w ;
3395     3395  
3396   {   3396   {
3397   w = (UInt )n;   3397   w = (UInt )n;
3398   return ((void *)w);   3398   return ((void *)w);
3399 }   3399 }
3400 }   3400 }
3401 __inline static Bool sr_isError(SysRes sr )   3401 __inline static Bool sr_isError(SysRes sr )
3402 {   3402 {
3403     3403  
3404     3404  
3405   {   3405   {
3406   return (sr._isError);   3406   return (sr._isError);
3407 }   3407 }
3408 }   3408 }
3409 __inline static UWord sr_Res(SysRes sr )   3409 __inline static UWord sr_Res(SysRes sr )
3410 {   3410 {
3411   UWord tmp ;   3411   UWord tmp ;
3412     3412  
3413   {   3413   {
3414   if (sr._isError) {   3414   if (sr._isError) {
3415     tmp = (UWord )0;   3415     tmp = (UWord )0;
3416   } else {   3416   } else {
3417     tmp = sr._val;   3417     tmp = sr._val;
3418   }   3418   }
3419   return (tmp);   3419   return (tmp);
3420 }   3420 }
3421 }   3421 }
3422 __inline static UWord sr_ResHI(SysRes sr )   3422 __inline static UWord sr_ResHI(SysRes sr )
3423 {   3423 {
3424     3424  
3425     3425  
3426   {   3426   {
3427   return ((UWord )0);   3427   return ((UWord )0);
3428 }   3428 }
3429 }   3429 }
3430 __inline static UWord sr_Err(SysRes sr )   3430 __inline static UWord sr_Err(SysRes sr )
3431 {   3431 {
3432   UWord tmp ;   3432   UWord tmp ;
3433     3433  
3434   {   3434   {
3435   if (sr._isError) {   3435   if (sr._isError) {
3436     tmp = sr._val;   3436     tmp = sr._val;
3437   } else {   3437   } else {
3438     tmp = (UWord )0;   3438     tmp = (UWord )0;
3439   }   3439   }
3440   return (tmp);   3440   return (tmp);
3441 }   3441 }
3442 }   3442 }
3443 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )   3443 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )
3444 {   3444 {
3445   int tmp ;   3445   int tmp ;
3446     3446  
3447   {   3447   {
3448   if (sr1._val == sr2._val) {   3448   if (sr1._val == sr2._val) {
3449     if (sr1._isError) {   3449     if (sr1._isError) {
3450       if (sr2._isError) {   3450       if (sr2._isError) {
3451         tmp = 1;   3451         tmp = 1;
3452       } else {   3452       } else {
3453         goto _L;   3453         goto _L;
3454       }   3454       }
3455     } else   3455     } else
3456     _L: /* CIL Label */   3456     _L: /* CIL Label */
3457     if (! sr1._isError) {   3457     if (! sr1._isError) {
3458       if (! sr2._isError) {   3458       if (! sr2._isError) {
3459         tmp = 1;   3459         tmp = 1;
3460       } else {   3460       } else {
3461         tmp = 0;   3461         tmp = 0;
3462       }   3462       }
3463     } else {   3463     } else {
3464       tmp = 0;   3464       tmp = 0;
3465     }   3465     }
3466   } else {   3466   } else {
3467     tmp = 0;   3467     tmp = 0;
3468   }   3468   }
3469   return ((Bool )tmp);   3469   return ((Bool )tmp);
3470 }   3470 }
3471 }   3471 }
3472 extern void ppIRType(IRType  ) ;   3472 extern void ppIRType(IRType  ) ;
3473 extern Int sizeofIRType(IRType  ) ;   3473 extern Int sizeofIRType(IRType  ) ;
3474 extern IRConst *IRConst_U1(Bool  ) ;   3474 extern IRConst *IRConst_U1(Bool  ) ;
3475 extern IRConst *IRConst_U8(UChar  ) ;   3475 extern IRConst *IRConst_U8(UChar  ) ;
3476 extern IRConst *IRConst_U16(UShort  ) ;   3476 extern IRConst *IRConst_U16(UShort  ) ;
3477 extern IRConst *IRConst_U32(UInt  ) ;   3477 extern IRConst *IRConst_U32(UInt  ) ;
3478 extern IRConst *IRConst_U64(ULong  ) ;   3478 extern IRConst *IRConst_U64(ULong  ) ;
3479 extern IRConst *IRConst_F32(Float  ) ;   3479 extern IRConst *IRConst_F32(Float  ) ;
3480 extern IRConst *IRConst_F32i(UInt  ) ;   3480 extern IRConst *IRConst_F32i(UInt  ) ;
3481 extern IRConst *IRConst_F64(Double  ) ;   3481 extern IRConst *IRConst_F64(Double  ) ;
3482 extern IRConst *IRConst_F64i(ULong  ) ;   3482 extern IRConst *IRConst_F64i(ULong  ) ;
3483 extern IRConst *IRConst_V128(UShort  ) ;   3483 extern IRConst *IRConst_V128(UShort  ) ;
3484 extern IRConst *deepCopyIRConst(IRConst * ) ;   3484 extern IRConst *deepCopyIRConst(IRConst * ) ;
3485 extern void ppIRConst(IRConst * ) ;   3485 extern void ppIRConst(IRConst * ) ;
3486 extern Bool eqIRConst(IRConst * , IRConst * ) ;   3486 extern Bool eqIRConst(IRConst * , IRConst * ) ;
3487 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;   3487 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;
3488 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;   3488 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;
3489 extern void ppIRCallee(IRCallee * ) ;   3489 extern void ppIRCallee(IRCallee * ) ;
3490 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;   3490 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;
3491 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;   3491 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;
3492 extern void ppIRRegArray(IRRegArray * ) ;   3492 extern void ppIRRegArray(IRRegArray * ) ;
3493 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;   3493 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;
3494 extern void ppIRTemp(IRTemp  ) ;   3494 extern void ppIRTemp(IRTemp  ) ;
3495 extern void ppIROp(IROp  ) ;   3495 extern void ppIROp(IROp  ) ;
3496 extern IRExpr *IRExpr_Binder(Int binder ) ;   3496 extern IRExpr *IRExpr_Binder(Int binder ) ;
3497 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;   3497 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;
3498 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;   3498 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;
3499 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;   3499 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;
3500 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,   3500 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,
3501                           IRExpr *arg4 ) ;   3501                           IRExpr *arg4 ) ;
3502 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,   3502 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,
3503                             IRExpr *arg3 ) ;   3503                             IRExpr *arg3 ) ;
3504 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;   3504 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;
3505 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;   3505 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;
3506 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;   3506 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;
3507 extern IRExpr *IRExpr_Const(IRConst *con ) ;   3507 extern IRExpr *IRExpr_Const(IRConst *con ) ;
3508 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;   3508 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;
3509 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;   3509 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;
3510 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;   3510 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;
3511 extern void ppIRExpr(IRExpr * ) ;   3511 extern void ppIRExpr(IRExpr * ) ;
3512 extern IRExpr **mkIRExprVec_0(void) ;   3512 extern IRExpr **mkIRExprVec_0(void) ;
3513 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;   3513 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;
3514 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;   3514 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;
3515 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;   3515 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;
3516 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3516 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3517 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3517 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3518                               IRExpr * ) ;   3518                               IRExpr * ) ;
3519 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3519 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3520                               IRExpr * , IRExpr * ) ;   3520                               IRExpr * , IRExpr * ) ;
3521 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3521 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3522                               IRExpr * , IRExpr * , IRExpr * ) ;   3522                               IRExpr * , IRExpr * , IRExpr * ) ;
3523 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3523 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3524                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3524                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3525 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;   3525 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;
3526 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;   3526 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;
3527 extern IRExpr *mkIRExpr_HWord(HWord  ) ;   3527 extern IRExpr *mkIRExpr_HWord(HWord  ) ;
3528 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,   3528 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,
3529                              void *addr , IRExpr **args ) ;   3529                              void *addr , IRExpr **args ) ;
3530 __inline static Bool isIRAtom(IRExpr *e )   3530 __inline static Bool isIRAtom(IRExpr *e )
3531 {   3531 {
3532   int tmp ;   3532   int tmp ;
3533   Bool tmp___0 ;   3533   Bool tmp___0 ;
3534     3534  
3535   {   3535   {
3536   if ((unsigned int )e->tag == 86019U) {   3536   if ((unsigned int )e->tag == 86019U) {
3537     tmp = 1;   3537     tmp = 1;
3538   } else   3538   } else
3539   if ((unsigned int )e->tag == 86025U) {   3539   if ((unsigned int )e->tag == 86025U) {
3540     tmp = 1;   3540     tmp = 1;
3541   } else {   3541   } else {
3542     tmp = 0;   3542     tmp = 0;
3543   }   3543   }
3544   tmp___0 = toBool(tmp);   3544   tmp___0 = toBool(tmp);
3545   return (tmp___0);   3545   return (tmp___0);
3546 }   3546 }
3547 }   3547 }
3548 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;   3548 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;
3549 extern void ppIRJumpKind(IRJumpKind  ) ;   3549 extern void ppIRJumpKind(IRJumpKind  ) ;
3550 extern void ppIREffect(IREffect  ) ;   3550 extern void ppIREffect(IREffect  ) ;
3551 extern void ppIRDirty(IRDirty * ) ;   3551 extern void ppIRDirty(IRDirty * ) ;
3552 extern IRDirty *emptyIRDirty(void) ;   3552 extern IRDirty *emptyIRDirty(void) ;
3553 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;   3553 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;
3554 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,   3554 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,
3555                                   IRExpr **args ) ;   3555                                   IRExpr **args ) ;
3556 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,   3556 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,
3557                                   void *addr , IRExpr **args ) ;   3557                                   void *addr , IRExpr **args ) ;
3558 extern void ppIRMBusEvent(IRMBusEvent  ) ;   3558 extern void ppIRMBusEvent(IRMBusEvent  ) ;
3559 extern void ppIRCAS(IRCAS *cas ) ;   3559 extern void ppIRCAS(IRCAS *cas ) ;
3560 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,   3560 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,
3561                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,   3561                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,
3562                       IRExpr *dataHi , IRExpr *dataLo ) ;   3562                       IRExpr *dataHi , IRExpr *dataLo ) ;
3563 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;   3563 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;
3564 extern IRStmt *IRStmt_NoOp(void) ;   3564 extern IRStmt *IRStmt_NoOp(void) ;
3565 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len , UChar delta ) ;   3565 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len , UChar delta ) ;
3566 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;   3566 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;
3567 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;   3567 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;
3568 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,   3568 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,
3569                            IRExpr *data ) ;   3569                            IRExpr *data ) ;
3570 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;   3570 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;
3571 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;   3571 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;
3572 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;   3572 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;
3573 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,   3573 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,
3574                            IRExpr *storedata ) ;   3574                            IRExpr *storedata ) ;
3575 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;   3575 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;
3576 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;   3576 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;
3577 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;   3577 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;
3578 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;   3578 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;
3579 extern void ppIRStmt(IRStmt * ) ;   3579 extern void ppIRStmt(IRStmt * ) ;
3580 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;   3580 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;
3581 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;   3581 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;
3582 extern void ppIRTypeEnv(IRTypeEnv * ) ;   3582 extern void ppIRTypeEnv(IRTypeEnv * ) ;
3583 extern IRSB *emptyIRSB(void) ;   3583 extern IRSB *emptyIRSB(void) ;
3584 extern IRSB *deepCopyIRSB(IRSB * ) ;   3584 extern IRSB *deepCopyIRSB(IRSB * ) ;
3585 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;   3585 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;
3586 extern void ppIRSB(IRSB * ) ;   3586 extern void ppIRSB(IRSB * ) ;
3587 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;   3587 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;
3588 extern IRTypeEnv *emptyIRTypeEnv(void) ;   3588 extern IRTypeEnv *emptyIRTypeEnv(void) ;
3589 extern IRType typeOfIRConst(IRConst * ) ;   3589 extern IRType typeOfIRConst(IRConst * ) ;
3590 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;   3590 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;
3591 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;   3591 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;
3592 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,   3592 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,
3593                             IRType guest_word_size ) ;   3593                             IRType guest_word_size ) ;
3594 extern Bool isFlatIRStmt(IRStmt * ) ;   3594 extern Bool isFlatIRStmt(IRStmt * ) ;
3595 extern Bool isPlausibleIRType(IRType ty ) ;   3595 extern Bool isPlausibleIRType(IRType ty ) ;
3596 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;   3596 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;
3597 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;   3597 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;
3598 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;   3598 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;
3599 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;   3599 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;
3600 extern void LibVEX_default_VexControl(VexControl *vcon ) ;   3600 extern void LibVEX_default_VexControl(VexControl *vcon ) ;
3601 extern HChar *private_LibVEX_alloc_first ;   3601 extern HChar *private_LibVEX_alloc_first ;
3602 extern HChar *private_LibVEX_alloc_curr ;   3602 extern HChar *private_LibVEX_alloc_curr ;
3603 extern HChar *private_LibVEX_alloc_last ;   3603 extern HChar *private_LibVEX_alloc_last ;
3604 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;   3604 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;
3605 __inline static void *LibVEX_Alloc(Int nbytes )   3605 __inline static void *LibVEX_Alloc(Int nbytes )
3606 {   3606 {
3607   HChar *curr ;   3607   HChar *curr ;
3608   HChar *next ;   3608   HChar *next ;
3609   Int ALIGN ;   3609   Int ALIGN ;
3610     3610  
3611   {   3611   {
3612   ALIGN = (Int )(sizeof(void *) - 1U);   3612   ALIGN = (Int )(sizeof(void *) - 1U);
3613   nbytes = (nbytes + ALIGN) & ~ ALIGN;   3613   nbytes = (nbytes + ALIGN) & ~ ALIGN;
3614   curr = private_LibVEX_alloc_curr;   3614   curr = private_LibVEX_alloc_curr;
3615   next = curr + nbytes;   3615   next = curr + nbytes;
3616   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {   3616   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {
3617     private_LibVEX_alloc_OOM();   3617     private_LibVEX_alloc_OOM();
3618   } else {   3618   } else {
3619     3619  
3620   }   3620   }
3621   private_LibVEX_alloc_curr = next;   3621   private_LibVEX_alloc_curr = next;
3622   return ((void *)curr);   3622   return ((void *)curr);
3623 }   3623 }
3624 }   3624 }
3625 extern void LibVEX_ShowAllocStats(void) ;   3625 extern void LibVEX_ShowAllocStats(void) ;
3626 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,   3626 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,
3627                         void (*log_bytes)(HChar * , Int nbytes ) ,   3627                         void (*log_bytes)(HChar * , Int nbytes ) ,
3628                         Int debuglevel , Bool valgrind_support ,   3628                         Int debuglevel , Bool valgrind_support ,
3629                         VexControl *vcon ) ;   3629                         VexControl *vcon ) ;
3630 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;   3630 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;
3631 extern void LibVEX_ShowStats(void) ;   3631 extern void LibVEX_ShowStats(void) ;
3632 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;   3632 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;
3633 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;   3633 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;
3634 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;   3634 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;
3635 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,   3635 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,
3636                                         VexGuestX86State *vex_state ) ;   3636                                         VexGuestX86State *vex_state ) ;
3637 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;   3637 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;
3638 extern Int vgPlain_debugLog_getLevel(void) ;   3638 extern Int vgPlain_debugLog_getLevel(void) ;
3639 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,   3639 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,
3640                                                         HChar const   *modulename ,   3640                                                         HChar const   *modulename ,
3641                                                         HChar const   *format   3641                                                         HChar const   *format
3642                                                         , ...) ;   3642                                                         , ...) ;
3643 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,   3643 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,
3644                                      void *send_arg2 , HChar const   *format ,   3644                                      void *send_arg2 , HChar const   *format ,
3645                                      va_list vargs ) ;   3645                                      va_list vargs ) ;
3646 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,   3646 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,
3647                                                       __vki_kernel_size_t __size ,   3647                                                       __vki_kernel_size_t __size ,
3648                                                       struct vki_cmsghdr *__cmsg )   3648                                                       struct vki_cmsghdr *__cmsg )
3649 {   3649 {
3650   struct vki_cmsghdr *__ptr ;   3650   struct vki_cmsghdr *__ptr ;
3651     3651  
3652   {   3652   {
3653   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));   3653   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));
3654   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {   3654   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {
3655     return ((struct vki_cmsghdr *)0);   3655     return ((struct vki_cmsghdr *)0);
3656   } else {   3656   } else {
3657     3657  
3658   }   3658   }
3659   return (__ptr);   3659   return (__ptr);
3660 }   3660 }
3661 }   3661 }
3662 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,   3662 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,
3663                                                     struct vki_cmsghdr *__cmsg )   3663                                                     struct vki_cmsghdr *__cmsg )
3664 {   3664 {
3665   struct vki_cmsghdr *tmp ;   3665   struct vki_cmsghdr *tmp ;
3666     3666  
3667   {   3667   {
3668   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);   3668   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
3669   return (tmp);   3669   return (tmp);
3670 }   3670 }
3671 }   3671 }
3672 extern void vgPlain_vki_do_initial_consistency_checks(void) ;   3672 extern void vgPlain_vki_do_initial_consistency_checks(void) ;
3673 extern Char *vgPlain_sysnum_string(Word sysnum , SizeT n_buf , Char *buf ) ;   3673 extern Char *vgPlain_sysnum_string(Word sysnum , SizeT n_buf , Char *buf ) ;
3674 extern Char *vgPlain_sysnum_string_extra(Word sysnum , SizeT n_buf , Char *buf ) ;   3674 extern Char *vgPlain_sysnum_string_extra(Word sysnum , SizeT n_buf , Char *buf ) ;
3675 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;   3675 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;
3676 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,   3676 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,
3677                                                      int __savemask ) ;   3677                                                      int __savemask ) ;
3678 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;   3678 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;
3679 extern  __attribute__((__nothrow__,   3679 extern  __attribute__((__nothrow__,
3680 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;   3680 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;
3681 extern  __attribute__((__nothrow__,   3681 extern  __attribute__((__nothrow__,
3682 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;   3682 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;
3683 extern  __attribute__((__nothrow__,   3683 extern  __attribute__((__nothrow__,
3684 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;   3684 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;
3685 extern ThreadId vgPlain_get_running_tid(void) ;   3685 extern ThreadId vgPlain_get_running_tid(void) ;
3686 extern ThreadState vgPlain_threads[500] ;   3686 extern ThreadState vgPlain_threads[500] ;
3687 extern ThreadId vgPlain_running_tid ;   3687 extern ThreadId vgPlain_running_tid ;
3688 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;   3688 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;
3689 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;   3689 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;
3690 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;   3690 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;
3691 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;   3691 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;
3692 extern Bool vgPlain_is_exiting(ThreadId tid ) ;   3692 extern Bool vgPlain_is_exiting(ThreadId tid ) ;
3693 extern Int vgPlain_count_living_threads(void) ;   3693 extern Int vgPlain_count_living_threads(void) ;
3694 extern Int vgPlain_count_runnable_threads(void) ;   3694 extern Int vgPlain_count_runnable_threads(void) ;
3695 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;   3695 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;
3696 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;   3696 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;
3697 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;   3697 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;
3698 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;   3698 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;
3699 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;   3699 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;
3700 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;   3700 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;
3701 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;   3701 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;
3702 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;   3702 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;
3703 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;   3703 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;
3704 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,   3704 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,
3705                                                             SizeT len ,   3705                                                             SizeT len ,
3706                                                             UInt prot ) ;   3706                                                             UInt prot ) ;
3707 extern ULong vgPlain_am_get_anonsize_total(void) ;   3707 extern ULong vgPlain_am_get_anonsize_total(void) ;
3708 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;   3708 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;
3709 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,   3709 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,
3710                                      Int line ) ;   3710                                      Int line ) ;
3711 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;   3711 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;
3712 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,   3712 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,
3713                                                   Bool *ok ) ;   3713                                                   Bool *ok ) ;
3714 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,   3714 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,
3715                                           UInt flags , Int fd , Off64T offset ) ;   3715                                           UInt flags , Int fd , Off64T offset ) ;
3716 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;   3716 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;
3717 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;   3717 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;
3718 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;   3718 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;
3719 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,   3719 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,
3720                                            UInt prot , UInt flags , Int fd ,   3720                                            UInt prot , UInt flags , Int fd ,
3721                                            Off64T offset ) ;   3721                                            Off64T offset ) ;
3722 extern void vgPlain_am_aix5_reread_procmap(AixCodeSegChange *directives ,   3722 extern void vgPlain_am_aix5_reread_procmap(AixCodeSegChange *directives ,
3723                                            Int *ndirectives ) ;   3723                                            Int *ndirectives ) ;
3724 extern Int vgPlain_am_aix5_reread_procmap_howmany_directives(void) ;   3724 extern Int vgPlain_am_aix5_reread_procmap_howmany_directives(void) ;
3725 extern void vgPlain_am_aix5_set_initial_client_sp(Addr  ) ;   3725 extern void vgPlain_am_aix5_set_initial_client_sp(Addr  ) ;
3726 extern Bool vgPlain_am_aix5_sbrk_allowed ;   3726 extern Bool vgPlain_am_aix5_sbrk_allowed ;
3727 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,   3727 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,
3728                                                 UInt prot , Int fd ,   3728                                                 UInt prot , Int fd ,
3729                                                 Off64T offset ) ;   3729                                                 Off64T offset ) ;
3730 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,   3730 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,
3731                                                       SizeT length , UInt prot ,   3731                                                       SizeT length , UInt prot ,
3732                                                       Int fd , Off64T offset ,   3732                                                       Int fd , Off64T offset ,
3733                                                       HChar const   *name ) ;   3733                                                       HChar const   *name ) ;
3734 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,   3734 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,
3735                                                 UInt prot ) ;   3735                                                 UInt prot ) ;
3736 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;   3736 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;
3737 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;   3737 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;
3738 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;   3738 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;
3739 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;   3739 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;
3740 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,   3740 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,
3741                                                   Int fd , Off64T offset ) ;   3741                                                   Int fd , Off64T offset ) ;
3742 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,   3742 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,
3743                                                          UInt prot , Int fd ,   3743                                                          UInt prot , Int fd ,
3744                                                          Off64T offset ) ;   3744                                                          Off64T offset ) ;
3745 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,   3745 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,
3746                                        SizeT length ) ;   3746                                        SizeT length ) ;
3747 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;   3747 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;
3748 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;   3748 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;
3749 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;   3749 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;
3750 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,   3750 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,
3751                                           ShrinkMode smode , SSizeT extra ) ;   3751                                           ShrinkMode smode , SSizeT extra ) ;
3752 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,   3752 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,
3753                                                                SSizeT delta ) ;   3753                                                                SSizeT delta ) ;
3754 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,   3754 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,
3755                                          SizeT delta ) ;   3755                                          SizeT delta ) ;
3756 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,   3756 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,
3757                                                  Addr old_addr , SizeT old_len ,   3757                                                  Addr old_addr , SizeT old_len ,
3758                                                  Addr new_addr , SizeT new_len ) ;   3758                                                  Addr new_addr , SizeT new_len ) ;
3759 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;   3759 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;
3760 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;   3760 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;
3761 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   3761 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
3762                                                       , ...)  __attribute__((__unused__)) ;   3762                                                       , ...)  __attribute__((__unused__)) ;
3763 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   3763 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
3764                                                       , ...)  __attribute__((__unused__)) ;   3764                                                       , ...)  __attribute__((__unused__)) ;
3765 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format   3765 static int ( /* format attribute */  VALGRIND_PRINTF)(char const   *format
3766                                                       , ...)   3766                                                       , ...)
3767 {   3767 {
3768   unsigned long _qzz_res ;   3768   unsigned long _qzz_res ;
3769   va_list vargs ;   3769   va_list vargs ;
3770   unsigned int volatile   _zzq_args[6] ;   3770   unsigned int volatile   _zzq_args[6] ;
3771   unsigned int volatile   _zzq_result ;   3771   unsigned int volatile   _zzq_result ;
3772     3772  
3773   {   3773   {
3774   __builtin_va_start(vargs, format);   3774   __builtin_va_start(vargs, format);
3775   _zzq_args[0] = (unsigned int volatile   )5123U;   3775   _zzq_args[0] = (unsigned int volatile   )5123U;
3776   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));   3776   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));
3777   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));   3777   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));
3778   _zzq_args[3] = (unsigned int volatile   )0U;   3778   _zzq_args[3] = (unsigned int volatile   )0U;
3779   _zzq_args[4] = (unsigned int volatile   )0U;   3779   _zzq_args[4] = (unsigned int volatile   )0U;
3780   _zzq_args[5] = (unsigned int volatile   )0U;   3780   _zzq_args[5] = (unsigned int volatile   )0U;
3781   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   3781   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
3782                        "roll $29, %%edi ; roll $19, %%edi\n\t"   3782                        "roll $29, %%edi ; roll $19, %%edi\n\t"
3783                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   3783                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
3784                        "0" (0): "cc", "memory");   3784                        "0" (0): "cc", "memory");
3785   _qzz_res = (unsigned long )_zzq_result;   3785   _qzz_res = (unsigned long )_zzq_result;
3786   __builtin_va_end(vargs);   3786   __builtin_va_end(vargs);
3787   return ((int )_qzz_res);   3787   return ((int )_qzz_res);
3788 }   3788 }
3789 }   3789 }
3790 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   3790 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
3791                                                                 , ...)  __attribute__((__unused__)) ;   3791                                                                 , ...)  __attribute__((__unused__)) ;
3792 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   3792 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
3793                                                                 , ...)  __attribute__((__unused__)) ;   3793                                                                 , ...)  __attribute__((__unused__)) ;
3794 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format   3794 static int ( /* format attribute */  VALGRIND_PRINTF_BACKTRACE)(char const   *format
3795                                                                 , ...)   3795                                                                 , ...)
3796 {   3796 {
3797   unsigned long _qzz_res ;   3797   unsigned long _qzz_res ;
3798   va_list vargs ;   3798   va_list vargs ;
3799   unsigned int volatile   _zzq_args[6] ;   3799   unsigned int volatile   _zzq_args[6] ;
3800   unsigned int volatile   _zzq_result ;   3800   unsigned int volatile   _zzq_result ;
3801     3801  
3802   {   3802   {
3803   __builtin_va_start(vargs, format);   3803   __builtin_va_start(vargs, format);
3804   _zzq_args[0] = (unsigned int volatile   )5124U;   3804   _zzq_args[0] = (unsigned int volatile   )5124U;
3805   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));   3805   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));
3806   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));   3806   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));
3807   _zzq_args[3] = (unsigned int volatile   )0U;   3807   _zzq_args[3] = (unsigned int volatile   )0U;
3808   _zzq_args[4] = (unsigned int volatile   )0U;   3808   _zzq_args[4] = (unsigned int volatile   )0U;
3809   _zzq_args[5] = (unsigned int volatile   )0U;   3809   _zzq_args[5] = (unsigned int volatile   )0U;
3810   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   3810   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
3811                        "roll $29, %%edi ; roll $19, %%edi\n\t"   3811                        "roll $29, %%edi ; roll $19, %%edi\n\t"
3812                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   3812                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
3813                        "0" (0): "cc", "memory");   3813                        "0" (0): "cc", "memory");
3814   _qzz_res = (unsigned long )_zzq_result;   3814   _qzz_res = (unsigned long )_zzq_result;
3815   __builtin_va_end(vargs);   3815   __builtin_va_end(vargs);
3816   return ((int )_qzz_res);   3816   return ((int )_qzz_res);
3817 }   3817 }
3818 }   3818 }
3819 static int ( /* format attribute */  VALGRIND_INTERNAL_PRINTF)(char const   *format   3819 static int ( /* format attribute */  VALGRIND_INTERNAL_PRINTF)(char const   *format
3820                                                                , ...)  __attribute__((__unused__)) ;   3820                                                                , ...)  __attribute__((__unused__)) ;
3821 static int ( /* format attribute */  VALGRIND_INTERNAL_PRINTF)(char const   *format   3821 static int ( /* format attribute */  VALGRIND_INTERNAL_PRINTF)(char const   *format
3822                                                                , ...)  __attribute__((__unused__)) ;   3822                                                                , ...)  __attribute__((__unused__)) ;
3823 static int ( /* format attribute */  VALGRIND_INTERNAL_PRINTF)(char const   *format   3823 static int ( /* format attribute */  VALGRIND_INTERNAL_PRINTF)(char const   *format
3824                                                                , ...)   3824                                                                , ...)
3825 {   3825 {
3826   unsigned long _qzz_res ;   3826   unsigned long _qzz_res ;
3827   va_list vargs ;   3827   va_list vargs ;
3828   unsigned int volatile   _zzq_args[6] ;   3828   unsigned int volatile   _zzq_args[6] ;
3829   unsigned int volatile   _zzq_result ;   3829   unsigned int volatile   _zzq_result ;
3830     3830  
3831   {   3831   {
3832   _qzz_res = 0UL;   3832   _qzz_res = 0UL;
3833   __builtin_va_start(vargs, format);   3833   __builtin_va_start(vargs, format);
3834   _zzq_args[0] = (unsigned int volatile   )12547U;   3834   _zzq_args[0] = (unsigned int volatile   )12547U;
3835   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));   3835   _zzq_args[1] = (unsigned int volatile   )((unsigned int )((unsigned long )format));
3836   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));   3836   _zzq_args[2] = (unsigned int volatile   )((unsigned int )((unsigned long )(& vargs)));
3837   _zzq_args[3] = (unsigned int volatile   )0U;   3837   _zzq_args[3] = (unsigned int volatile   )0U;
3838   _zzq_args[4] = (unsigned int volatile   )0U;   3838   _zzq_args[4] = (unsigned int volatile   )0U;
3839   _zzq_args[5] = (unsigned int volatile   )0U;   3839   _zzq_args[5] = (unsigned int volatile   )0U;
3840   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   3840   __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
3841                        "roll $29, %%edi ; roll $19, %%edi\n\t"   3841                        "roll $29, %%edi ; roll $19, %%edi\n\t"
3842                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   3842                        "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
3843                        "0" (0): "cc", "memory");   3843                        "0" (0): "cc", "memory");
3844   _qzz_res = (unsigned long )_zzq_result;   3844   _qzz_res = (unsigned long )_zzq_result;
3845   __builtin_va_end(vargs);   3845   __builtin_va_end(vargs);
3846   return ((int )_qzz_res);   3846   return ((int )_qzz_res);
3847 }   3847 }
3848 }   3848 }
3849 extern UWord vgPlain_run_innerloop(void *guest_state , UWord do_profiling ) ;   3849 extern UWord vgPlain_run_innerloop(void *guest_state , UWord do_profiling ) ;
3850 extern Addr vgPlain_run_innerloop__dispatch_unassisted_unprofiled ;   3850 extern Addr vgPlain_run_innerloop__dispatch_unassisted_unprofiled ;
3851 extern Addr vgPlain_run_innerloop__dispatch_assisted_unprofiled ;   3851 extern Addr vgPlain_run_innerloop__dispatch_assisted_unprofiled ;
3852 extern Addr vgPlain_run_innerloop__dispatch_unassisted_profiled ;   3852 extern Addr vgPlain_run_innerloop__dispatch_unassisted_profiled ;
3853 extern Addr vgPlain_run_innerloop__dispatch_assisted_profiled ;   3853 extern Addr vgPlain_run_innerloop__dispatch_assisted_profiled ;
3854 extern void vgPlain_run_a_noredir_translation(UWord volatile   *argblock ) ;   3854 extern void vgPlain_run_a_noredir_translation(UWord volatile   *argblock ) ;
3855 extern Addr vgPlain_run_a_noredir_translation__return_point ;   3855 extern Addr vgPlain_run_a_noredir_translation__return_point ;
3856 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;   3856 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;
3857 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;   3857 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;
3858 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,   3858 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,
3859                                      ExeContext *ec , UInt n_ips ) ;   3859                                      ExeContext *ec , UInt n_ips ) ;
3860 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;   3860 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;
3861 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;   3861 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;
3862 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;   3862 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;
3863 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;   3863 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;
3864 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;   3864 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;
3865 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;   3865 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;
3866 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )   3866 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )
3867 {   3867 {
3868   int tmp ;   3868   int tmp ;
3869     3869  
3870   {   3870   {
3871   if (ecu > 0U) {   3871   if (ecu > 0U) {
3872     if ((ecu & 3U) == 0U) {   3872     if ((ecu & 3U) == 0U) {
3873       tmp = 1;   3873       tmp = 1;
3874     } else {   3874     } else {
3875       tmp = 0;   3875       tmp = 0;
3876     }   3876     }
3877   } else {   3877   } else {
3878     tmp = 0;   3878     tmp = 0;
3879   }   3879   }
3880   return ((Bool )tmp);   3880   return ((Bool )tmp);
3881 }   3881 }
3882 }   3882 }
3883 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,   3883 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,
3884                                                            UInt n_ips ) ;   3884                                                            UInt n_ips ) ;
3885 extern ExeContext *vgPlain_get_error_where(Error *err ) ;   3885 extern ExeContext *vgPlain_get_error_where(Error *err ) ;
3886 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;   3886 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;
3887 extern Addr vgPlain_get_error_address(Error *err ) ;   3887 extern Addr vgPlain_get_error_address(Error *err ) ;
3888 extern Char *vgPlain_get_error_string(Error *err ) ;   3888 extern Char *vgPlain_get_error_string(Error *err ) ;
3889 extern void *vgPlain_get_error_extra(Error *err ) ;   3889 extern void *vgPlain_get_error_extra(Error *err ) ;
3890 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,   3890 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,
3891                                        Char *s , void *extra ) ;   3891                                        Char *s , void *extra ) ;
3892 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,   3892 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,
3893                                  Char *s , void *extra , ExeContext *where ,   3893                                  Char *s , void *extra , ExeContext *where ,
3894                                  Bool print_error , Bool allow_GDB_attach ,   3894                                  Bool print_error , Bool allow_GDB_attach ,
3895                                  Bool count_error ) ;   3895                                  Bool count_error ) ;
3896 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;   3896 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;
3897 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;   3897 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;
3898 extern Char *vgPlain_get_supp_string(Supp *su ) ;   3898 extern Char *vgPlain_get_supp_string(Supp *su ) ;
3899 extern void *vgPlain_get_supp_extra(Supp *su ) ;   3899 extern void *vgPlain_get_supp_extra(Supp *su ) ;
3900 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;   3900 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;
3901 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;   3901 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;
3902 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;   3902 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;
3903 extern void vgPlain_load_suppressions(void) ;   3903 extern void vgPlain_load_suppressions(void) ;
3904 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;   3904 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;
3905 extern void vgPlain_show_last_error(void) ;   3905 extern void vgPlain_show_last_error(void) ;
3906 extern void vgPlain_show_error_counts_as_XML(void) ;   3906 extern void vgPlain_show_error_counts_as_XML(void) ;
3907 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;   3907 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;
3908 extern Bool vgPlain_showing_core_errors(void) ;   3908 extern Bool vgPlain_showing_core_errors(void) ;
3909 extern UInt vgPlain_get_n_errs_found(void) ;   3909 extern UInt vgPlain_get_n_errs_found(void) ;
3910 extern void vgPlain_print_errormgr_stats(void) ;   3910 extern void vgPlain_print_errormgr_stats(void) ;
3911 extern void vgPlain_gdbserver(ThreadId tid ) ;   3911 extern void vgPlain_gdbserver(ThreadId tid ) ;
3912 extern Int vgPlain_dyn_vgdb_error ;   3912 extern Int vgPlain_dyn_vgdb_error ;
3913 extern char *vgPlain_ppPointKind(PointKind kind ) ;   3913 extern char *vgPlain_ppPointKind(PointKind kind ) ;
3914 extern Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;   3914 extern Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;
3915 extern void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind ,   3915 extern void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind ,
3916                                                         Bool insert ,   3916                                                         Bool insert ,
3917                                                         Addr addr , SizeT len ) ) ;   3917                                                         Addr addr , SizeT len ) ) ;
3918 extern UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format   3918 extern UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format
3919                                                           , ...) ;   3919                                                           , ...) ;
3920 extern Int vgPlain_keyword_id(Char *keywords , Char *input_word ,   3920 extern Int vgPlain_keyword_id(Char *keywords , Char *input_word ,
3921                               kwd_report_error report ) ;   3921                               kwd_report_error report ) ;
3922 extern void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,   3922 extern void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,
3923                                                 Char **ssaveptr ) ;   3923                                                 Char **ssaveptr ) ;
3924 extern void vgPlain_gdbserver_prerun_action(ThreadId tid ) ;   3924 extern void vgPlain_gdbserver_prerun_action(ThreadId tid ) ;
3925 extern Bool vgPlain_gdbserver_activity(ThreadId tid ) ;   3925 extern Bool vgPlain_gdbserver_activity(ThreadId tid ) ;
3926 extern Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr ,   3926 extern Bool vgPlain_gdbserver_point(PointKind kind , Bool insert , Addr addr ,
3927                                     int len ) ;   3927                                     int len ) ;
3928 extern void vgPlain_invoke_gdbserver(int check ) ;   3928 extern void vgPlain_invoke_gdbserver(int check ) ;
3929 extern Bool vgPlain_gdbserver_report_signal(Int signo , ThreadId tid ) ;   3929 extern Bool vgPlain_gdbserver_report_signal(Int signo , ThreadId tid ) ;
3930 extern IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,   3930 extern IRSB *vgPlain_instrument_for_gdbserver_if_needed(IRSB *sb_in ,
3931                                                         VexGuestLayout *layout ,   3931                                                         VexGuestLayout *layout ,
3932                                                         VexGuestExtents *vge ,   3932                                                         VexGuestExtents *vge ,
3933                                                         IRType gWordTy ,   3933                                                         IRType gWordTy ,
3934                                                         IRType hWordTy ) ;   3934                                                         IRType hWordTy ) ;
3935 extern void vgPlain_gdbserver_status_output(void) ;   3935 extern void vgPlain_gdbserver_status_output(void) ;
3936 extern Bool vgPlain_isspace(Char c ) ;   3936 extern Bool vgPlain_isspace(Char c ) ;
3937 extern Bool vgPlain_isdigit(Char c ) ;   3937 extern Bool vgPlain_isdigit(Char c ) ;
3938 extern Char vgPlain_tolower(Char c ) ;   3938 extern Char vgPlain_tolower(Char c ) ;
3939 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;   3939 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;
3940 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;   3940 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;
3941 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;   3941 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;
3942 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;   3942 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;
3943 extern double vgPlain_strtod(Char *str , Char **endptr ) ;   3943 extern double vgPlain_strtod(Char *str , Char **endptr ) ;
3944 extern SizeT vgPlain_strlen(Char const   *str ) ;   3944 extern SizeT vgPlain_strlen(Char const   *str ) ;
3945 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;   3945 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;
3946 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;   3946 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;
3947 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;   3947 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;
3948 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;   3948 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;
3949 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;   3949 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;
3950 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;   3950 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;
3951 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;   3951 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;
3952 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   3952 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
3953 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   3953 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
3954 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;   3954 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;
3955 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;   3955 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;
3956 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;   3956 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;
3957 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;   3957 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;
3958 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;   3958 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;
3959 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;   3959 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;
3960 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;   3960 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;
3961 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;   3961 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;
3962 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;   3962 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;
3963 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;   3963 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;
3964 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;   3964 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;
3965 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;   3965 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;
3966 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;   3966 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;
3967 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;   3967 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;
3968 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,   3968 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,
3969                                                                                 SizeT sz )   3969                                                                                 SizeT sz )
3970 {   3970 {
3971   UWord *p ;   3971   UWord *p ;
3972   UWord tmp ;   3972   UWord tmp ;
3973   UWord tmp___0 ;   3973   UWord tmp___0 ;
3974   UWord tmp___1 ;   3974   UWord tmp___1 ;
3975   UWord tmp___2 ;   3975   UWord tmp___2 ;
3976   UWord tmp___3 ;   3976   UWord tmp___3 ;
3977   UWord tmp___4 ;   3977   UWord tmp___4 ;
3978   UWord tmp___5 ;   3978   UWord tmp___5 ;
3979   UWord tmp___6 ;   3979   UWord tmp___6 ;
3980   UWord tmp___7 ;   3980   UWord tmp___7 ;
3981   UWord tmp___8 ;   3981   UWord tmp___8 ;
3982   UWord tmp___9 ;   3982   UWord tmp___9 ;
3983   UWord tmp___10 ;   3983   UWord tmp___10 ;
3984   UWord tmp___11 ;   3984   UWord tmp___11 ;
3985   UWord tmp___12 ;   3985   UWord tmp___12 ;
3986   UWord tmp___13 ;   3986   UWord tmp___13 ;
3987   UWord tmp___14 ;   3987   UWord tmp___14 ;
3988   UWord tmp___15 ;   3988   UWord tmp___15 ;
3989   UWord tmp___16 ;   3989   UWord tmp___16 ;
3990   UWord tmp___17 ;   3990   UWord tmp___17 ;
3991   UWord tmp___18 ;   3991   UWord tmp___18 ;
3992   UWord tmp___19 ;   3992   UWord tmp___19 ;
3993   UWord tmp___20 ;   3993   UWord tmp___20 ;
3994   UWord tmp___21 ;   3994   UWord tmp___21 ;
3995   UWord tmp___22 ;   3995   UWord tmp___22 ;
3996   UWord tmp___23 ;   3996   UWord tmp___23 ;
3997   UWord tmp___24 ;   3997   UWord tmp___24 ;
3998   UWord tmp___25 ;   3998   UWord tmp___25 ;
3999   UWord tmp___26 ;   3999   UWord tmp___26 ;
4000   long tmp___27 ;   4000   long tmp___27 ;
4001   long tmp___28 ;   4001   long tmp___28 ;
4002     4002  
4003   {   4003   {
4004   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),   4004   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),
4005                               1L);   4005                               1L);
4006   if (tmp___27) {   4006   if (tmp___27) {
4007     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),   4007     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),
4008                                 1L);   4008                                 1L);
4009     if (tmp___28) {   4009     if (tmp___28) {
4010       p = (UWord *)s;   4010       p = (UWord *)s;
4011       switch (sz / (SizeT )sizeof(UWord )) {   4011       switch (sz / (SizeT )sizeof(UWord )) {
4012       case 8UL:   4012       case 8UL:
4013       tmp___5 = 0UL;   4013       tmp___5 = 0UL;
4014       *(p + 7) = tmp___5;   4014       *(p + 7) = tmp___5;
4015       tmp___4 = tmp___5;   4015       tmp___4 = tmp___5;
4016       *(p + 6) = tmp___4;   4016       *(p + 6) = tmp___4;
4017       tmp___3 = tmp___4;   4017       tmp___3 = tmp___4;
4018       *(p + 5) = tmp___3;   4018       *(p + 5) = tmp___3;
4019       tmp___2 = tmp___3;   4019       tmp___2 = tmp___3;
4020       *(p + 4) = tmp___2;   4020       *(p + 4) = tmp___2;
4021       tmp___1 = tmp___2;   4021       tmp___1 = tmp___2;
4022       *(p + 3) = tmp___1;   4022       *(p + 3) = tmp___1;
4023       tmp___0 = tmp___1;   4023       tmp___0 = tmp___1;
4024       *(p + 2) = tmp___0;   4024       *(p + 2) = tmp___0;
4025       tmp = tmp___0;   4025       tmp = tmp___0;
4026       *(p + 1) = tmp;   4026       *(p + 1) = tmp;
4027       *(p + 0) = tmp;   4027       *(p + 0) = tmp;
4028       return;   4028       return;
4029       case 7UL:   4029       case 7UL:
4030       tmp___11 = 0UL;   4030       tmp___11 = 0UL;
4031       *(p + 6) = tmp___11;   4031       *(p + 6) = tmp___11;
4032       tmp___10 = tmp___11;   4032       tmp___10 = tmp___11;
4033       *(p + 5) = tmp___10;   4033       *(p + 5) = tmp___10;
4034       tmp___9 = tmp___10;   4034       tmp___9 = tmp___10;
4035       *(p + 4) = tmp___9;   4035       *(p + 4) = tmp___9;
4036       tmp___8 = tmp___9;   4036       tmp___8 = tmp___9;
4037       *(p + 3) = tmp___8;   4037       *(p + 3) = tmp___8;
4038       tmp___7 = tmp___8;   4038       tmp___7 = tmp___8;
4039       *(p + 2) = tmp___7;   4039       *(p + 2) = tmp___7;
4040       tmp___6 = tmp___7;   4040       tmp___6 = tmp___7;
4041       *(p + 1) = tmp___6;   4041       *(p + 1) = tmp___6;
4042       *(p + 0) = tmp___6;   4042       *(p + 0) = tmp___6;
4043       return;   4043       return;
4044       case 6UL:   4044       case 6UL:
4045       tmp___16 = 0UL;   4045       tmp___16 = 0UL;
4046       *(p + 5) = tmp___16;   4046       *(p + 5) = tmp___16;
4047       tmp___15 = tmp___16;   4047       tmp___15 = tmp___16;
4048       *(p + 4) = tmp___15;   4048       *(p + 4) = tmp___15;
4049       tmp___14 = tmp___15;   4049       tmp___14 = tmp___15;
4050       *(p + 3) = tmp___14;   4050       *(p + 3) = tmp___14;
4051       tmp___13 = tmp___14;   4051       tmp___13 = tmp___14;
4052       *(p + 2) = tmp___13;   4052       *(p + 2) = tmp___13;
4053       tmp___12 = tmp___13;   4053       tmp___12 = tmp___13;
4054       *(p + 1) = tmp___12;   4054       *(p + 1) = tmp___12;
4055       *(p + 0) = tmp___12;   4055       *(p + 0) = tmp___12;
4056       return;   4056       return;
4057       case 5UL:   4057       case 5UL:
4058       tmp___20 = 0UL;   4058       tmp___20 = 0UL;
4059       *(p + 4) = tmp___20;   4059       *(p + 4) = tmp___20;
4060       tmp___19 = tmp___20;   4060       tmp___19 = tmp___20;
4061       *(p + 3) = tmp___19;   4061       *(p + 3) = tmp___19;
4062       tmp___18 = tmp___19;   4062       tmp___18 = tmp___19;
4063       *(p + 2) = tmp___18;   4063       *(p + 2) = tmp___18;
4064       tmp___17 = tmp___18;   4064       tmp___17 = tmp___18;
4065       *(p + 1) = tmp___17;   4065       *(p + 1) = tmp___17;
4066       *(p + 0) = tmp___17;   4066       *(p + 0) = tmp___17;
4067       return;   4067       return;
4068       case 4UL:   4068       case 4UL:
4069       tmp___23 = 0UL;   4069       tmp___23 = 0UL;
4070       *(p + 3) = tmp___23;   4070       *(p + 3) = tmp___23;
4071       tmp___22 = tmp___23;   4071       tmp___22 = tmp___23;
4072       *(p + 2) = tmp___22;   4072       *(p + 2) = tmp___22;
4073       tmp___21 = tmp___22;   4073       tmp___21 = tmp___22;
4074       *(p + 1) = tmp___21;   4074       *(p + 1) = tmp___21;
4075       *(p + 0) = tmp___21;   4075       *(p + 0) = tmp___21;
4076       return;   4076       return;
4077       case 3UL:   4077       case 3UL:
4078       tmp___25 = 0UL;   4078       tmp___25 = 0UL;
4079       *(p + 2) = tmp___25;   4079       *(p + 2) = tmp___25;
4080       tmp___24 = tmp___25;   4080       tmp___24 = tmp___25;
4081       *(p + 1) = tmp___24;   4081       *(p + 1) = tmp___24;
4082       *(p + 0) = tmp___24;   4082       *(p + 0) = tmp___24;
4083       return;   4083       return;
4084       case 2UL:   4084       case 2UL:
4085       tmp___26 = 0UL;   4085       tmp___26 = 0UL;
4086       *(p + 1) = tmp___26;   4086       *(p + 1) = tmp___26;
4087       *(p + 0) = tmp___26;   4087       *(p + 0) = tmp___26;
4088       return;   4088       return;
4089       case 1UL:   4089       case 1UL:
4090       *(p + 0) = 0UL;   4090       *(p + 0) = 0UL;
4091       return;   4091       return;
4092       case 0UL:   4092       case 0UL:
4093       return;   4093       return;
4094       default:   4094       default:
4095       break;   4095       break;
4096       }   4096       }
4097     } else {   4097     } else {
4098     4098  
4099     }   4099     }
4100   } else {   4100   } else {
4101     4101  
4102   }   4102   }
4103   vgPlain_memset(s, 0, sz);   4103   vgPlain_memset(s, 0, sz);
4104   return;   4104   return;
4105 }   4105 }
4106 }   4106 }
4107 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,   4107 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,
4108                           Int (*compar)(void * , void * ) ) ;   4108                           Int (*compar)(void * , void * ) ) ;
4109 extern Int vgPlain_log2(UInt x ) ;   4109 extern Int vgPlain_log2(UInt x ) ;
4110 extern Int vgPlain_log2_64(ULong x ) ;   4110 extern Int vgPlain_log2_64(ULong x ) ;
4111 extern UInt vgPlain_random(UInt *pSeed ) ;   4111 extern UInt vgPlain_random(UInt *pSeed ) ;
4112 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;   4112 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;
4113 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;   4113 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;
4114 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,   4114 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,
4115                                                                Char const   *expr ,   4115                                                                Char const   *expr ,
4116                                                                Char const   *file ,   4116                                                                Char const   *file ,
4117                                                                Int line ,   4117                                                                Int line ,
4118                                                                Char const   *fn ,   4118                                                                Char const   *fn ,
4119                                                                HChar const   *format   4119                                                                HChar const   *format
4120                                                                , ...) ;   4120                                                                , ...) ;
4121 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;   4121 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;
4122 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,   4122 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,
4123                                                                  UnwindStartRegs * ) ;   4123                                                                  UnwindStartRegs * ) ;
4124 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;   4124 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;
4125 extern void vgPlain_show_sched_status(void) ;   4125 extern void vgPlain_show_sched_status(void) ;
4126 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,   4126 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,
4127                                                        HChar const   *format   4127                                                        HChar const   *format
4128                                                        , ...) ;   4128                                                        , ...) ;
4129 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,   4129 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,
4130                                                         HChar const   *format ,   4130                                                         HChar const   *format ,
4131                                                         va_list vargs ) ;   4131                                                         va_list vargs ) ;
4132 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,   4132 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,
4133                                                         HChar const   *format   4133                                                         HChar const   *format
4134                                                         , ...) ;   4134                                                         , ...) ;
4135 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,   4135 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,
4136                                                          HChar const   *format ,   4136                                                          HChar const   *format ,
4137                                                          va_list vargs ) ;   4137                                                          va_list vargs ) ;
4138 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,   4138 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,
4139                                char *buf ) ;   4139                                char *buf ) ;
4140 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format   4140 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format
4141                                                       , ...) ;   4141                                                       , ...) ;
4142 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,   4142 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,
4143                                                        va_list vargs ) ;   4143                                                        va_list vargs ) ;
4144 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format   4144 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format
4145                                                           , ...) ;   4145                                                           , ...) ;
4146 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,   4146 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,
4147                                                            va_list vargs ) ;   4147                                                            va_list vargs ) ;
4148 extern UInt vgPlain_printf_xml_no_f_c(HChar const   *format  , ...) ;   4148 extern UInt vgPlain_printf_xml_no_f_c(HChar const   *format  , ...) ;
4149 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,   4149 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,
4150                               void *opaque , HChar const   *format ,   4150                               void *opaque , HChar const   *format ,
4151                               va_list vargs ) ;   4151                               va_list vargs ) ;
4152 extern UInt vgPlain_message_no_f_c(VgMsgKind kind , HChar const   *format  , ...) ;   4152 extern UInt vgPlain_message_no_f_c(VgMsgKind kind , HChar const   *format  , ...) ;
4153 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,   4153 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,
4154                                                        HChar const   *format   4154                                                        HChar const   *format
4155                                                        , ...) ;   4155                                                        , ...) ;
4156 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,   4156 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,
4157                                                         HChar const   *format ,   4157                                                         HChar const   *format ,
4158                                                         va_list vargs ) ;   4158                                                         va_list vargs ) ;
4159 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;   4159 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;
4160 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,   4160 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,
4161                                                                                               HChar const   *format   4161                                                                                               HChar const   *format
4162                                                                                               , ...) ;   4162                                                                                               , ...) ;
4163 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;   4163 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;
4164 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;   4164 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;
4165 extern void vgPlain_message_flush(void) ;   4165 extern void vgPlain_message_flush(void) ;
4166 extern OutputSink vgPlain_log_output_sink ;   4166 extern OutputSink vgPlain_log_output_sink ;
4167 extern OutputSink vgPlain_xml_output_sink ;   4167 extern OutputSink vgPlain_xml_output_sink ;
4168 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;   4168 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;
4169 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;   4169 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;
4170 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *msg ) ;   4170 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *msg ) ;
4171 extern Char **vgPlain_client_envp ;   4171 extern Char **vgPlain_client_envp ;
4172 extern Char *vgPlain_getenv(Char *name ) ;   4172 extern Char *vgPlain_getenv(Char *name ) ;
4173 extern Char const   *vgPlain_libdir ;   4173 extern Char const   *vgPlain_libdir ;
4174 extern Char const   *vgPlain_LD_PRELOAD_var_name ;   4174 extern Char const   *vgPlain_LD_PRELOAD_var_name ;
4175 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;   4175 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;
4176 extern Int vgPlain_system(Char *cmd ) ;   4176 extern Int vgPlain_system(Char *cmd ) ;
4177 extern Int vgPlain_fork(void) ;   4177 extern Int vgPlain_fork(void) ;
4178 extern void vgPlain_execv(Char *filename , Char **argv ) ;   4178 extern void vgPlain_execv(Char *filename , Char **argv ) ;
4179 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;   4179 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;
4180 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;   4180 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;
4181 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,   4181 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,
4182                          ULong arg5 ) ;   4182                          ULong arg5 ) ;
4183 extern Int vgPlain_gettid(void) ;   4183 extern Int vgPlain_gettid(void) ;
4184 extern Int vgPlain_getpid(void) ;   4184 extern Int vgPlain_getpid(void) ;
4185 extern Int vgPlain_getppid(void) ;   4185 extern Int vgPlain_getppid(void) ;
4186 extern Int vgPlain_getpgrp(void) ;   4186 extern Int vgPlain_getpgrp(void) ;
4187 extern Int vgPlain_geteuid(void) ;   4187 extern Int vgPlain_geteuid(void) ;
4188 extern Int vgPlain_getegid(void) ;   4188 extern Int vgPlain_getegid(void) ;
4189 extern UInt vgPlain_read_millisecond_timer(void) ;   4189 extern UInt vgPlain_read_millisecond_timer(void) ;
4190 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,   4190 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,
4191                            void (*parent)(ThreadId  ) ,   4191                            void (*parent)(ThreadId  ) ,
4192                            void (*child)(ThreadId  ) ) ;   4192                            void (*child)(ThreadId  ) ) ;
4193 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,   4193 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,
4194                                  Char const   *val ) ;   4194                                  Char const   *val ) ;
4195 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;   4195 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;
4196 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;   4196 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;
4197 extern Char **vgPlain_env_clone(Char **env_clone ) ;   4197 extern Char **vgPlain_env_clone(Char **env_clone ) ;
4198 extern Int vgPlain_getgroups(Int size , UInt *list ) ;   4198 extern Int vgPlain_getgroups(Int size , UInt *list ) ;
4199 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;   4199 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;
4200 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;   4200 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;
4201 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;   4201 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;
4202 extern void vgPlain_do_atfork_child(ThreadId tid ) ;   4202 extern void vgPlain_do_atfork_child(ThreadId tid ) ;
4203 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,   4203 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,
4204                                vki_sigset_t *oldset ) ;   4204                                vki_sigset_t *oldset ) ;
4205 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;   4205 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;
4206 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;   4206 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;
4207 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;   4207 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;
4208 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;   4208 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;
4209 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,   4209 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,
4210                                vki_sigset_t const   *set2 ) ;   4210                                vki_sigset_t const   *set2 ) ;
4211 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;   4211 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;
4212 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;   4212 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;
4213 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;   4213 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;
4214 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4214 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4215 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4215 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4216 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4216 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4217 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4217 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4218 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,   4218 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,
4219                              vki_sigaction_fromK_t *oldact ) ;   4219                              vki_sigaction_fromK_t *oldact ) ;
4220 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,   4220 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,
4221                                                    vki_sigaction_toK_t * ) ;   4221                                                    vki_sigaction_toK_t * ) ;
4222 extern Int vgPlain_kill(Int pid , Int signo ) ;   4222 extern Int vgPlain_kill(Int pid , Int signo ) ;
4223 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;   4223 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;
4224 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;   4224 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;
4225 extern Addr vgPlain_get_IP(ThreadId tid ) ;   4225 extern Addr vgPlain_get_IP(ThreadId tid ) ;
4226 extern Addr vgPlain_get_SP(ThreadId tid ) ;   4226 extern Addr vgPlain_get_SP(ThreadId tid ) ;
4227 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,   4227 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,
4228                                          Int shadowNo , PtrdiffT offset ,   4228                                          Int shadowNo , PtrdiffT offset ,
4229                                          SizeT size ) ;   4229                                          SizeT size ) ;
4230 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,   4230 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,
4231                                          PtrdiffT offset , SizeT size ,   4231                                          PtrdiffT offset , SizeT size ,
4232                                          UChar const   *src ) ;   4232                                          UChar const   *src ) ;
4233 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,   4233 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,
4234                                                UWord s2res , UWord s1err ,   4234                                                UWord s2res , UWord s1err ,
4235                                                UWord s2err ) ;   4235                                                UWord s2err ) ;
4236 extern void vgPlain_apply_to_GP_regs(void (*f)(UWord val ) ) ;   4236 extern void vgPlain_apply_to_GP_regs(void (*f)(UWord val ) ) ;
4237 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;   4237 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;
4238 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,   4238 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,
4239                                       Addr *stack_max ) ;   4239                                       Addr *stack_max ) ;
4240 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;   4240 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;
4241 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;   4241 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;
4242 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;   4242 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;
4243 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;   4243 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;
4244 extern void *vgPlain_fnptr_to_fnentry(void * ) ;   4244 extern void *vgPlain_fnptr_to_fnentry(void * ) ;
4245 extern Addr vgPlain_get_FP(ThreadId tid ) ;   4245 extern Addr vgPlain_get_FP(ThreadId tid ) ;
4246 extern void vgPlain_set_IP(ThreadId tid , Addr encip ) ;   4246 extern void vgPlain_set_IP(ThreadId tid , Addr encip ) ;
4247 extern void vgPlain_set_SP(ThreadId tid , Addr sp ) ;   4247 extern void vgPlain_set_SP(ThreadId tid , Addr sp ) ;
4248 extern void vgPlain_get_UnwindStartRegs(UnwindStartRegs *regs , ThreadId tid ) ;   4248 extern void vgPlain_get_UnwindStartRegs(UnwindStartRegs *regs , ThreadId tid ) ;
4249 extern Bool vgPlain_machine_get_hwcaps(void) ;   4249 extern Bool vgPlain_machine_get_hwcaps(void) ;
4250 extern void vgPlain_machine_get_VexArchInfo(VexArch * , VexArchInfo * ) ;   4250 extern void vgPlain_machine_get_VexArchInfo(VexArch * , VexArchInfo * ) ;
4251 extern UInt vgPlain_machine_x86_have_mxcsr ;   4251 extern UInt vgPlain_machine_x86_have_mxcsr ;
4252 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;   4252 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;
4253 extern void vgPlain_free(void *p ) ;   4253 extern void vgPlain_free(void *p ) ;
4254 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;   4254 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;
4255 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;   4255 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;
4256 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;   4256 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;
4257 extern SizeT vgPlain_malloc_usable_size(void *p ) ;   4257 extern SizeT vgPlain_malloc_usable_size(void *p ) ;
4258 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,   4258 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,
4259                                                                           SizeT szB ) ;   4259                                                                           SizeT szB ) ;
4260 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;   4260 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;
4261 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;   4261 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;
4262 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,   4262 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,
4263                                   SizeT bytes_per_memb ) ;   4263                                   SizeT bytes_per_memb ) ;
4264 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,   4264 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,
4265                                    SizeT size ) ;   4265                                    SizeT size ) ;
4266 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,   4266 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,
4267                                     SizeT req_pszB ) ;   4267                                     SizeT req_pszB ) ;
4268 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;   4268 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;
4269 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;   4269 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;
4270 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;   4270 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;
4271 extern void vgPlain_sanity_check_malloc_all(void) ;   4271 extern void vgPlain_sanity_check_malloc_all(void) ;
4272 extern void vgPlain_print_all_arena_stats(void) ;   4272 extern void vgPlain_print_all_arena_stats(void) ;
4273 extern void vgPlain_print_arena_cc_analysis(void) ;   4273 extern void vgPlain_print_arena_cc_analysis(void) ;
4274 extern Int vgPlain_clo_verbosity ;   4274 extern Int vgPlain_clo_verbosity ;
4275 extern Bool vgPlain_clo_stats ;   4275 extern Bool vgPlain_clo_stats ;
4276 extern Int vgPlain_clo_vgdb_error ;   4276 extern Int vgPlain_clo_vgdb_error ;
4277 extern Bool vgPlain_clo_xml ;   4277 extern Bool vgPlain_clo_xml ;
4278 extern HChar *vgPlain_clo_xml_user_comment ;   4278 extern HChar *vgPlain_clo_xml_user_comment ;
4279 extern VexControl vgPlain_clo_vex_control ;   4279 extern VexControl vgPlain_clo_vex_control ;
4280 extern Int vgPlain_clo_backtrace_size ;   4280 extern Int vgPlain_clo_backtrace_size ;
4281 extern Bool vgPlain_clo_show_below_main ;   4281 extern Bool vgPlain_clo_show_below_main ;
4282 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;   4282 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;
4283 extern Bool vgPlain_clo_error_limit ;   4283 extern Bool vgPlain_clo_error_limit ;
4284 extern Int vgPlain_clo_error_exitcode ;   4284 extern Int vgPlain_clo_error_exitcode ;
4285 extern VgVgdb vgPlain_clo_vgdb ;   4285 extern VgVgdb vgPlain_clo_vgdb ;
4286 extern Int vgPlain_clo_vgdb_poll ;   4286 extern Int vgPlain_clo_vgdb_poll ;
4287 extern Char *vgPlain_clo_vgdb_prefix ;   4287 extern Char *vgPlain_clo_vgdb_prefix ;
4288 extern Bool vgPlain_clo_vgdb_shadow_registers ;   4288 extern Bool vgPlain_clo_vgdb_shadow_registers ;
4289 extern Bool vgPlain_clo_db_attach ;   4289 extern Bool vgPlain_clo_db_attach ;
4290 extern Char *vgPlain_clo_db_command ;   4290 extern Char *vgPlain_clo_db_command ;
4291 extern Int vgPlain_clo_gen_suppressions ;   4291 extern Int vgPlain_clo_gen_suppressions ;
4292 extern Int vgPlain_clo_sanity_level ;   4292 extern Int vgPlain_clo_sanity_level ;
4293 extern Bool vgPlain_clo_demangle ;   4293 extern Bool vgPlain_clo_demangle ;
4294 extern Bool vgPlain_clo_trace_children ;   4294 extern Bool vgPlain_clo_trace_children ;
4295 extern HChar *vgPlain_clo_trace_children_skip ;   4295 extern HChar *vgPlain_clo_trace_children_skip ;
4296 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;   4296 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;
4297 extern Bool vgPlain_clo_child_silent_after_fork ;   4297 extern Bool vgPlain_clo_child_silent_after_fork ;
4298 extern Char *vgPlain_clo_log_fname_expanded ;   4298 extern Char *vgPlain_clo_log_fname_expanded ;
4299 extern Char *vgPlain_clo_xml_fname_expanded ;   4299 extern Char *vgPlain_clo_xml_fname_expanded ;
4300 extern Bool vgPlain_clo_time_stamp ;   4300 extern Bool vgPlain_clo_time_stamp ;
4301 extern Int vgPlain_clo_input_fd ;   4301 extern Int vgPlain_clo_input_fd ;
4302 extern Int vgPlain_clo_n_suppressions ;   4302 extern Int vgPlain_clo_n_suppressions ;
4303 extern Char *vgPlain_clo_suppressions[100] ;   4303 extern Char *vgPlain_clo_suppressions[100] ;
4304 extern Int vgPlain_clo_n_fullpath_after ;   4304 extern Int vgPlain_clo_n_fullpath_after ;
4305 extern Char *vgPlain_clo_fullpath_after[100] ;   4305 extern Char *vgPlain_clo_fullpath_after[100] ;
4306 extern UChar vgPlain_clo_trace_flags ;   4306 extern UChar vgPlain_clo_trace_flags ;
4307 extern UChar vgPlain_clo_profile_flags ;   4307 extern UChar vgPlain_clo_profile_flags ;
4308 extern Int vgPlain_clo_trace_notbelow ;   4308 extern Int vgPlain_clo_trace_notbelow ;
4309 extern Bool vgPlain_clo_trace_syscalls ;   4309 extern Bool vgPlain_clo_trace_syscalls ;
4310 extern Bool vgPlain_clo_trace_signals ;   4310 extern Bool vgPlain_clo_trace_signals ;
4311 extern Bool vgPlain_clo_trace_symtab ;   4311 extern Bool vgPlain_clo_trace_symtab ;
4312 extern HChar *vgPlain_clo_trace_symtab_patt ;   4312 extern HChar *vgPlain_clo_trace_symtab_patt ;
4313 extern Bool vgPlain_clo_trace_cfi ;   4313 extern Bool vgPlain_clo_trace_cfi ;
4314 extern Bool vgPlain_clo_debug_dump_syms ;   4314 extern Bool vgPlain_clo_debug_dump_syms ;
4315 extern Bool vgPlain_clo_debug_dump_line ;   4315 extern Bool vgPlain_clo_debug_dump_line ;
4316 extern Bool vgPlain_clo_debug_dump_frames ;   4316 extern Bool vgPlain_clo_debug_dump_frames ;
4317 extern Bool vgPlain_clo_trace_redir ;   4317 extern Bool vgPlain_clo_trace_redir ;
4318 extern Bool vgPlain_clo_trace_sched ;   4318 extern Bool vgPlain_clo_trace_sched ;
4319 extern Bool vgPlain_clo_profile_heap ;   4319 extern Bool vgPlain_clo_profile_heap ;
4320 extern Int vgPlain_clo_dump_error ;   4320 extern Int vgPlain_clo_dump_error ;
4321 extern Char *vgPlain_clo_sim_hints ;   4321 extern Char *vgPlain_clo_sim_hints ;
4322 extern Bool vgPlain_clo_sym_offsets ;   4322 extern Bool vgPlain_clo_sym_offsets ;
4323 extern Bool vgPlain_clo_read_var_info ;   4323 extern Bool vgPlain_clo_read_var_info ;
4324 extern Char *vgPlain_clo_prefix_to_strip ;   4324 extern Char *vgPlain_clo_prefix_to_strip ;
4325 extern Int vgPlain_clo_n_req_tsyms ;   4325 extern Int vgPlain_clo_n_req_tsyms ;
4326 extern HChar *vgPlain_clo_req_tsyms[100] ;   4326 extern HChar *vgPlain_clo_req_tsyms[100] ;
4327 extern Bool vgPlain_clo_track_fds ;   4327 extern Bool vgPlain_clo_track_fds ;
4328 extern Bool vgPlain_clo_run_libc_freeres ;   4328 extern Bool vgPlain_clo_run_libc_freeres ;
4329 extern Bool vgPlain_clo_show_emwarns ;   4329 extern Bool vgPlain_clo_show_emwarns ;
4330 extern Word vgPlain_clo_max_stackframe ;   4330 extern Word vgPlain_clo_max_stackframe ;
4331 extern Word vgPlain_clo_main_stacksize ;   4331 extern Word vgPlain_clo_main_stacksize ;
4332 extern Bool vgPlain_clo_wait_for_gdb ;   4332 extern Bool vgPlain_clo_wait_for_gdb ;
4333 extern VgSmc vgPlain_clo_smc_check ;   4333 extern VgSmc vgPlain_clo_smc_check ;
4334 extern HChar *vgPlain_clo_kernel_variant ;   4334 extern HChar *vgPlain_clo_kernel_variant ;
4335 extern Bool vgPlain_clo_dsymutil ;   4335 extern Bool vgPlain_clo_dsymutil ;
4336 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,   4336 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,
4337                                                HChar **child_argv ) ;   4337                                                HChar **child_argv ) ;
4338 extern void *vgPlain_cli_malloc(SizeT align , SizeT nbytes ) ;   4338 extern void *vgPlain_cli_malloc(SizeT align , SizeT nbytes ) ;
4339 extern void vgPlain_cli_free(void *p ) ;   4339 extern void vgPlain_cli_free(void *p ) ;
4340 extern Long vgPlain_free_queue_volume ;   4340 extern Long vgPlain_free_queue_volume ;
4341 extern Long vgPlain_free_queue_length ;   4341 extern Long vgPlain_free_queue_length ;
4342 extern Bool vgPlain_addr_is_in_block(Addr a , Addr start , SizeT size ,   4342 extern Bool vgPlain_addr_is_in_block(Addr a , Addr start , SizeT size ,
4343                                      SizeT rz_szB ) ;   4343                                      SizeT rz_szB ) ;
4344 extern Bool vgPlain_clo_trace_malloc ;   4344 extern Bool vgPlain_clo_trace_malloc ;
4345 extern UInt vgPlain_clo_alignment ;   4345 extern UInt vgPlain_clo_alignment ;
4346 extern Bool vgPlain_replacement_malloc_process_cmd_line_option(Char *arg ) ;   4346 extern Bool vgPlain_replacement_malloc_process_cmd_line_option(Char *arg ) ;
4347 extern void vgPlain_set_fault_catcher(void (*catcher)(Int sig , Addr addr ) ) ;   4347 extern void vgPlain_set_fault_catcher(void (*catcher)(Int sig , Addr addr ) ) ;
4348 extern Int vgPlain_max_signal ;   4348 extern Int vgPlain_max_signal ;
4349 extern void vgPlain_sigstartup_actions(void) ;   4349 extern void vgPlain_sigstartup_actions(void) ;
4350 extern void vgPlain_poll_signals(ThreadId  ) ;   4350 extern void vgPlain_poll_signals(ThreadId  ) ;
4351 extern SysRes vgPlain_do_sys_sigaltstack(ThreadId tid , vki_stack_t *ss ,   4351 extern SysRes vgPlain_do_sys_sigaltstack(ThreadId tid , vki_stack_t *ss ,
4352                                          vki_stack_t *oss ) ;   4352                                          vki_stack_t *oss ) ;
4353 extern SysRes vgPlain_do_sys_sigaction(Int signo ,   4353 extern SysRes vgPlain_do_sys_sigaction(Int signo ,
4354                                        vki_sigaction_toK_t const   *new_act ,   4354                                        vki_sigaction_toK_t const   *new_act ,
4355                                        vki_sigaction_fromK_t *old_act ) ;   4355                                        vki_sigaction_fromK_t *old_act ) ;
4356 extern SysRes vgPlain_do_sys_sigprocmask(ThreadId tid , Int how ,   4356 extern SysRes vgPlain_do_sys_sigprocmask(ThreadId tid , Int how ,
4357                                          vki_sigset_t *set ,   4357                                          vki_sigset_t *set ,
4358                                          vki_sigset_t *oldset ) ;   4358                                          vki_sigset_t *oldset ) ;
4359 extern void vgPlain_clear_out_queued_signals(ThreadId tid ,   4359 extern void vgPlain_clear_out_queued_signals(ThreadId tid ,
4360                                              vki_sigset_t *saved_mask ) ;   4360                                              vki_sigset_t *saved_mask ) ;
4361 extern void vgPlain_kill_self(Int sigNo ) ;   4361 extern void vgPlain_kill_self(Int sigNo ) ;
4362 extern void vgPlain_synth_fault(ThreadId tid ) ;   4362 extern void vgPlain_synth_fault(ThreadId tid ) ;
4363 extern void vgPlain_synth_fault_mapping(ThreadId tid , Addr addr ) ;   4363 extern void vgPlain_synth_fault_mapping(ThreadId tid , Addr addr ) ;
4364 extern void vgPlain_synth_fault_perms(ThreadId tid , Addr addr ) ;   4364 extern void vgPlain_synth_fault_perms(ThreadId tid , Addr addr ) ;
4365 extern void vgPlain_synth_sigill(ThreadId tid , Addr addr ) ;   4365 extern void vgPlain_synth_sigill(ThreadId tid , Addr addr ) ;
4366 extern void vgPlain_synth_sigtrap(ThreadId tid ) ;   4366 extern void vgPlain_synth_sigtrap(ThreadId tid ) ;
4367 extern void vgPlain_synth_sigbus(ThreadId tid ) ;   4367 extern void vgPlain_synth_sigbus(ThreadId tid ) ;
4368 extern Bool vgPlain_extend_stack(Addr addr , UInt maxsize ) ;   4368 extern Bool vgPlain_extend_stack(Addr addr , UInt maxsize ) ;
4369 extern void vgPlain_set_default_handler(Int sig ) ;   4369 extern void vgPlain_set_default_handler(Int sig ) ;
4370 extern UWord vgPlain_register_stack(Addr start , Addr end ) ;   4370 extern UWord vgPlain_register_stack(Addr start , Addr end ) ;
4371 extern void vgPlain_deregister_stack(UWord id ) ;   4371 extern void vgPlain_deregister_stack(UWord id ) ;
4372 extern void vgPlain_change_stack(UWord id , Addr start , Addr end ) ;   4372 extern void vgPlain_change_stack(UWord id , Addr start , Addr end ) ;
4373 extern void vgPlain_stack_limits(Addr SP , Addr *start , Addr *end ) ;   4373 extern void vgPlain_stack_limits(Addr SP , Addr *start , Addr *end ) ;
4374 extern void ( __attribute__((__regparm__(3))) vgPlain_unknown_SP_update)(Addr old_SP ,   4374 extern void ( __attribute__((__regparm__(3))) vgPlain_unknown_SP_update)(Addr old_SP ,
4375                                                                          Addr new_SP ,   4375                                                                          Addr new_SP ,
4376                                                                          UInt otag ) ;   4376                                                                          UInt otag ) ;
4377 extern UInt vgPlain_get_StackTrace(ThreadId tid , StackTrace ips , UInt n_ips ,   4377 extern UInt vgPlain_get_StackTrace(ThreadId tid , StackTrace ips , UInt n_ips ,
4378                                    StackTrace sps , StackTrace fps ,   4378                                    StackTrace sps , StackTrace fps ,
4379                                    Word first_ip_delta ) ;   4379                                    Word first_ip_delta ) ;
4380 extern void vgPlain_apply_StackTrace(void (*action)(UInt n , Addr ip ,   4380 extern void vgPlain_apply_StackTrace(void (*action)(UInt n , Addr ip ,
4381                                                     void *opaque ) ,   4381                                                     void *opaque ) ,
4382                                      void *opaque , StackTrace ips , UInt n_ips ) ;   4382                                      void *opaque , StackTrace ips , UInt n_ips ) ;
4383 extern void vgPlain_pp_StackTrace(StackTrace ips , UInt n_ips ) ;   4383 extern void vgPlain_pp_StackTrace(StackTrace ips , UInt n_ips ) ;
4384 extern void vgPlain_get_and_pp_StackTrace(ThreadId tid , UInt n_ips ) ;   4384 extern void vgPlain_get_and_pp_StackTrace(ThreadId tid , UInt n_ips ) ;
4385 extern UInt vgPlain_get_StackTrace_wrk(ThreadId tid_if_known , Addr *ips ,   4385 extern UInt vgPlain_get_StackTrace_wrk(ThreadId tid_if_known , Addr *ips ,
4386                                        UInt n_ips , Addr *sps , Addr *fps ,   4386                                        UInt n_ips , Addr *sps , Addr *fps ,
4387                                        UnwindStartRegs *startRegs ,   4387                                        UnwindStartRegs *startRegs ,
4388                                        Addr fp_max_orig ) ;   4388                                        Addr fp_max_orig ) ;
4389 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,   4389 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,
4390                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;   4390                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;
4391 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;   4391 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;
4392 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;   4392 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;
4393 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;   4393 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;
4394 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;   4394 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;
4395 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;   4395 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;
4396 extern SysRes vgPlain_mk_SysRes_ppc32_aix5(UInt val , UInt err ) ;   4396 extern SysRes vgPlain_mk_SysRes_ppc32_aix5(UInt val , UInt err ) ;
4397 extern SysRes vgPlain_mk_SysRes_ppc64_aix5(ULong val , ULong err ) ;   4397 extern SysRes vgPlain_mk_SysRes_ppc64_aix5(ULong val , ULong err ) ;
4398 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,   4398 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,
4399                                            UInt wHI , UInt wLO ) ;   4399                                            UInt wHI , UInt wLO ) ;
4400 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,   4400 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,
4401                                              ULong wHI , ULong wLO ) ;   4401                                              ULong wHI , ULong wLO ) ;
4402 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;   4402 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;
4403 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;   4403 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;
4404 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;   4404 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;
4405 extern HChar const   *vgPlain_strerror(UWord errnum ) ;   4405 extern HChar const   *vgPlain_strerror(UWord errnum ) ;
4406 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;   4406 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;
4407 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;   4407 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;
4408 extern void vgPlain_post_syscall(ThreadId tid ) ;   4408 extern void vgPlain_post_syscall(ThreadId tid ) ;
4409 extern void vgPlain_clear_syscallInfo(Int tid ) ;   4409 extern void vgPlain_clear_syscallInfo(Int tid ) ;
4410 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,   4410 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,
4411                                                                 Addr ip ,   4411                                                                 Addr ip ,
4412                                                                 SysRes sysret ,   4412                                                                 SysRes sysret ,
4413                                                                 Bool restart ) ;   4413                                                                 Bool restart ) ;
4414 extern void vgPlain_reap_threads(ThreadId self ) ;   4414 extern void vgPlain_reap_threads(ThreadId self ) ;
4415 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;   4415 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;
4416 extern void vgPlain_init_preopened_fds(void) ;   4416 extern void vgPlain_init_preopened_fds(void) ;
4417 extern void vgPlain_show_open_fds(void) ;   4417 extern void vgPlain_show_open_fds(void) ;
4418 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,   4418 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,
4419                                                                    VgSchedReturnCode  ) ;   4419                                                                    VgSchedReturnCode  ) ;
4420 extern void (*vgPlain_tl_pre_clo_init)(void) ;   4420 extern void (*vgPlain_tl_pre_clo_init)(void) ;
4421 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,   4421 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,
4422                                      IRSB *(*instrument)(VgCallbackClosure *closure ,   4422                                      IRSB *(*instrument)(VgCallbackClosure *closure ,
4423                                                          IRSB *sb_in ,   4423                                                          IRSB *sb_in ,
4424                                                          VexGuestLayout *layout ,   4424                                                          VexGuestLayout *layout ,
4425                                                          VexGuestExtents *vge ,   4425                                                          VexGuestExtents *vge ,
4426                                                          IRType gWordTy ,   4426                                                          IRType gWordTy ,
4427                                                          IRType hWordTy ) ,   4427                                                          IRType hWordTy ) ,
4428                                      void (*fini)(Int  ) ) ;   4428                                      void (*fini)(Int  ) ) ;
4429 extern void vgPlain_details_name(Char *name ) ;   4429 extern void vgPlain_details_name(Char *name ) ;
4430 extern void vgPlain_details_version(Char *version ) ;   4430 extern void vgPlain_details_version(Char *version ) ;
4431 extern void vgPlain_details_description(Char *description ) ;   4431 extern void vgPlain_details_description(Char *description ) ;
4432 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;   4432 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;
4433 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;   4433 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;
4434 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;   4434 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;
4435 extern void vgPlain_needs_libc_freeres(void) ;   4435 extern void vgPlain_needs_libc_freeres(void) ;
4436 extern void vgPlain_needs_core_errors(void) ;   4436 extern void vgPlain_needs_core_errors(void) ;
4437 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,   4437 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,
4438                                                        Error *e2 ) ,   4438                                                        Error *e2 ) ,
4439                                       void (*before_pp_Error)(Error *err ) ,   4439                                       void (*before_pp_Error)(Error *err ) ,
4440                                       void (*pp_Error)(Error *err ) ,   4440                                       void (*pp_Error)(Error *err ) ,
4441                                       Bool show_ThreadIDs_for_errors ,   4441                                       Bool show_ThreadIDs_for_errors ,
4442                                       UInt (*update_extra)(Error *err ) ,   4442                                       UInt (*update_extra)(Error *err ) ,
4443                                       Bool (*recognised_suppression)(Char *name ,   4443                                       Bool (*recognised_suppression)(Char *name ,
4444                                                                      Supp *su ) ,   4444                                                                      Supp *su ) ,
4445                                       Bool (*read_extra_suppression_info)(Int fd ,   4445                                       Bool (*read_extra_suppression_info)(Int fd ,
4446                                                                           Char **bufpp ,   4446                                                                           Char **bufpp ,
4447                                                                           SizeT *nBufp ,   4447                                                                           SizeT *nBufp ,
4448                                                                           Supp *su ) ,   4448                                                                           Supp *su ) ,
4449                                       Bool (*error_matches_suppression)(Error *err ,   4449                                       Bool (*error_matches_suppression)(Error *err ,
4450                                                                         Supp *su ) ,   4450                                                                         Supp *su ) ,
4451                                       Char *(*get_error_name)(Error *err ) ,   4451                                       Char *(*get_error_name)(Error *err ) ,
4452                                       Bool (*print_extra_suppression_info)(Error *err ,   4452                                       Bool (*print_extra_suppression_info)(Error *err ,
4453                                                                            Char *buf ,   4453                                                                            Char *buf ,
4454                                                                            Int nBuf ) ) ;   4454                                                                            Int nBuf ) ) ;
4455 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,   4455 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,
4456                                                                               VexGuestExtents extents ) ) ;   4456                                                                               VexGuestExtents extents ) ) ;
4457 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,   4457 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,
4458                                                void (*print_usage)(void) ,   4458                                                void (*print_usage)(void) ,
4459                                                void (*print_debug_usage)(void) ) ;   4459                                                void (*print_debug_usage)(void) ) ;
4460 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,   4460 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,
4461                                                                         UWord *arg_block ,   4461                                                                         UWord *arg_block ,
4462                                                                         UWord *ret ) ) ;   4462                                                                         UWord *ret ) ) ;
4463 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,   4463 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,
4464                                                               UInt syscallno ,   4464                                                               UInt syscallno ,
4465                                                               UWord *args ,   4465                                                               UWord *args ,
4466                                                               UInt nArgs ) ,   4466                                                               UInt nArgs ) ,
4467                                           void (*post_syscall)(ThreadId tid ,   4467                                           void (*post_syscall)(ThreadId tid ,
4468                                                                UInt syscallno ,   4468                                                                UInt syscallno ,
4469                                                                UWord *args ,   4469                                                                UWord *args ,
4470                                                                UInt nArgs ,   4470                                                                UInt nArgs ,
4471                                                                SysRes res ) ) ;   4471                                                                SysRes res ) ) ;
4472 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,   4472 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,
4473                                         Bool (*expensive_sanity_check)(void) ) ;   4473                                         Bool (*expensive_sanity_check)(void) ) ;
4474 extern void vgPlain_needs_var_info(void) ;   4474 extern void vgPlain_needs_var_info(void) ;
4475 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,   4475 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,
4476                                                               SizeT n ) ,   4476                                                               SizeT n ) ,
4477                                              void *(*p__builtin_new)(ThreadId tid ,   4477                                              void *(*p__builtin_new)(ThreadId tid ,
4478                                                                      SizeT n ) ,   4478                                                                      SizeT n ) ,
4479                                              void *(*p__builtin_vec_new)(ThreadId tid ,   4479                                              void *(*p__builtin_vec_new)(ThreadId tid ,
4480                                                                          SizeT n ) ,   4480                                                                          SizeT n ) ,
4481                                              void *(*pmemalign)(ThreadId tid ,   4481                                              void *(*pmemalign)(ThreadId tid ,
4482                                                                 SizeT align ,   4482                                                                 SizeT align ,
4483                                                                 SizeT n ) ,   4483                                                                 SizeT n ) ,
4484                                              void *(*pcalloc)(ThreadId tid ,   4484                                              void *(*pcalloc)(ThreadId tid ,
4485                                                               SizeT nmemb ,   4485                                                               SizeT nmemb ,
4486                                                               SizeT size1 ) ,   4486                                                               SizeT size1 ) ,
4487                                              void (*pfree)(ThreadId tid ,   4487                                              void (*pfree)(ThreadId tid ,
4488                                                            void *p ) ,   4488                                                            void *p ) ,
4489                                              void (*p__builtin_delete)(ThreadId tid ,   4489                                              void (*p__builtin_delete)(ThreadId tid ,
4490                                                                        void *p ) ,   4490                                                                        void *p ) ,
4491                                              void (*p__builtin_vec_delete)(ThreadId tid ,   4491                                              void (*p__builtin_vec_delete)(ThreadId tid ,
4492                                                                            void *p ) ,   4492                                                                            void *p ) ,
4493                                              void *(*prealloc)(ThreadId tid ,   4493                                              void *(*prealloc)(ThreadId tid ,
4494                                                                void *p ,   4494                                                                void *p ,
4495                                                                SizeT new_size ) ,   4495                                                                SizeT new_size ) ,
4496                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,   4496                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,
4497                                                                           void *p ) ,   4497                                                                           void *p ) ,
4498                                              SizeT client_malloc_redzone_szB ) ;   4498                                              SizeT client_malloc_redzone_szB ) ;
4499 extern void vgPlain_needs_xml_output(void) ;   4499 extern void vgPlain_needs_xml_output(void) ;
4500 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;   4500 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;
4501 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,   4501 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,
4502                                                     Bool rr , Bool ww ,   4502                                                     Bool rr , Bool ww ,
4503                                                     Bool xx , ULong di_handle ) ) ;   4503                                                     Bool xx , ULong di_handle ) ) ;
4504 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,   4504 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,
4505                                                          ThreadId tid ) ) ;   4505                                                          ThreadId tid ) ) ;
4506 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,   4506 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,
4507                                                 ThreadId tid ) ) ;   4507                                                 ThreadId tid ) ) ;
4508 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,   4508 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,
4509                                                  Bool ww , Bool xx ,   4509                                                  Bool ww , Bool xx ,
4510                                                  ULong di_handle ) ) ;   4510                                                  ULong di_handle ) ) ;
4511 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,   4511 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,
4512                                                    SizeT len ) ) ;   4512                                                    SizeT len ) ) ;
4513 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,   4513 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,
4514                                                         Bool rr , Bool ww ,   4514                                                         Bool rr , Bool ww ,
4515                                                         Bool xx ) ) ;   4515                                                         Bool xx ) ) ;
4516 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;   4516 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;
4517 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;   4517 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;
4518 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;   4518 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;
4519 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4519 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4520                                                                                              UInt ecu ) ) ;   4520                                                                                              UInt ecu ) ) ;
4521 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4521 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4522                                                                                              UInt ecu ) ) ;   4522                                                                                              UInt ecu ) ) ;
4523 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4523 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4524                                                                                               UInt ecu ) ) ;   4524                                                                                               UInt ecu ) ) ;
4525 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4525 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4526                                                                                               UInt ecu ) ) ;   4526                                                                                               UInt ecu ) ) ;
4527 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4527 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4528                                                                                               UInt ecu ) ) ;   4528                                                                                               UInt ecu ) ) ;
4529 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4529 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4530                                                                                                UInt ecu ) ) ;   4530                                                                                                UInt ecu ) ) ;
4531 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4531 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4532                                                                                                UInt ecu ) ) ;   4532                                                                                                UInt ecu ) ) ;
4533 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4533 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4534                                                                                                UInt ecu ) ) ;   4534                                                                                                UInt ecu ) ) ;
4535 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4535 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4536                                                                                                UInt ecu ) ) ;   4536                                                                                                UInt ecu ) ) ;
4537 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,   4537 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,
4538                                                         UInt ecu ) ) ;   4538                                                         UInt ecu ) ) ;
4539 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4539 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4540 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4540 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4541 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4541 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4542 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4542 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4543 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4543 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4544 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4544 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4545 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4545 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4546 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4546 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4547 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4547 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4548 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4548 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4549 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4549 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4550 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4550 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4551 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4551 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4552 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4552 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4553 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4553 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4554 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4554 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4555 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4555 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4556 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4556 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4557 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4557 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4558 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4558 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4559 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4559 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4560 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,   4560 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,
4561                                                  Char *s , Addr a , SizeT size ) ) ;   4561                                                  Char *s , Addr a , SizeT size ) ) ;
4562 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,   4562 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,
4563                                                         ThreadId tid , Char *s ,   4563                                                         ThreadId tid , Char *s ,
4564                                                         Addr a ) ) ;   4564                                                         Addr a ) ) ;
4565 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,   4565 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,
4566                                                   Char *s , Addr a , SizeT size ) ) ;   4566                                                   Char *s , Addr a , SizeT size ) ) ;
4567 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,   4567 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,
4568                                                    ThreadId tid , Addr a ,   4568                                                    ThreadId tid , Addr a ,
4569                                                    SizeT size ) ) ;   4569                                                    SizeT size ) ) ;
4570 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,   4570 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,
4571                                                  Char *s ,   4571                                                  Char *s ,
4572                                                  PtrdiffT guest_state_offset ,   4572                                                  PtrdiffT guest_state_offset ,
4573                                                  SizeT size ) ) ;   4573                                                  SizeT size ) ) ;
4574 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,   4574 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,
4575                                                    ThreadId tid ,   4575                                                    ThreadId tid ,
4576                                                    PtrdiffT guest_state_offset ,   4576                                                    PtrdiffT guest_state_offset ,
4577                                                    SizeT size ) ) ;   4577                                                    SizeT size ) ) ;
4578 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,   4578 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,
4579                                                                      PtrdiffT guest_state_offset ,   4579                                                                      PtrdiffT guest_state_offset ,
4580                                                                      SizeT size ,   4580                                                                      SizeT size ,
4581                                                                      Addr f ) ) ;   4581                                                                      Addr f ) ) ;
4582 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,   4582 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,
4583                                                       ULong blocks_dispatched ) ) ;   4583                                                       ULong blocks_dispatched ) ) ;
4584 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,   4584 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,
4585                                                      ULong blocks_dispatched ) ) ;   4585                                                      ULong blocks_dispatched ) ) ;
4586 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,   4586 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,
4587                                                          ThreadId child ) ) ;   4587                                                          ThreadId child ) ) ;
4588 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;   4588 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;
4589 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;   4589 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;
4590 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,   4590 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,
4591                                                        Int sigNo ,   4591                                                        Int sigNo ,
4592                                                        Bool alt_stack ) ) ;   4592                                                        Bool alt_stack ) ) ;
4593 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,   4593 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,
4594                                                         Int sigNo ) ) ;   4594                                                         Int sigNo ) ) ;
4595 extern VgDetails vgPlain_details ;   4595 extern VgDetails vgPlain_details ;
4596 extern VgNeeds vgPlain_needs ;   4596 extern VgNeeds vgPlain_needs ;
4597 extern VgToolInterface vgPlain_tdict ;   4597 extern VgToolInterface vgPlain_tdict ;
4598 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;   4598 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;
4599 extern Bool vgPlain_translate(ThreadId tid , Addr64 orig_addr ,   4599 extern Bool vgPlain_translate(ThreadId tid , Addr64 orig_addr ,
4600                               Bool debugging_translation ,   4600                               Bool debugging_translation ,
4601                               Int debugging_verbosity , ULong bbs_done ,   4601                               Int debugging_verbosity , ULong bbs_done ,
4602                               Bool allow_redirection ) ;   4602                               Bool allow_redirection ) ;
4603 extern void vgPlain_print_translation_stats(void) ;   4603 extern void vgPlain_print_translation_stats(void) ;
4604 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;   4604 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;
4605 extern UInt *vgPlain_tt_fastN[1 << 15] ;   4605 extern UInt *vgPlain_tt_fastN[1 << 15] ;
4606 extern void vgPlain_init_tt_tc(void) ;   4606 extern void vgPlain_init_tt_tc(void) ;
4607 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,   4607 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,
4608                                     AddrH code , UInt code_len ,   4608                                     AddrH code , UInt code_len ,
4609                                     Bool is_self_checking ) ;   4609                                     Bool is_self_checking ) ;
4610 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,   4610 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,
4611                                     Bool upd_cache ) ;   4611                                     Bool upd_cache ) ;
4612 extern void vgPlain_discard_translations(Addr64 start , ULong range ,   4612 extern void vgPlain_discard_translations(Addr64 start , ULong range ,
4613                                          HChar *who ) ;   4613                                          HChar *who ) ;
4614 extern void vgPlain_print_tt_tc_stats(void) ;   4614 extern void vgPlain_print_tt_tc_stats(void) ;
4615 extern UInt vgPlain_get_bbs_translated(void) ;   4615 extern UInt vgPlain_get_bbs_translated(void) ;
4616 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,   4616 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,
4617                                             Addr64 entry , AddrH code ,   4617                                             Addr64 entry , AddrH code ,
4618                                             UInt code_len ) ;   4618                                             UInt code_len ) ;
4619 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;   4619 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;
4620 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;   4620 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;
4621 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;   4621 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;
4622 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;   4622 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;
4623 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;   4623 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;
4624 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;   4624 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;
4625 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,   4625 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,
4626                                          Int n_filename , Char *dirname ,   4626                                          Int n_filename , Char *dirname ,
4627                                          Int n_dirname ,   4627                                          Int n_dirname ,
4628                                          Bool *dirname_available ,   4628                                          Bool *dirname_available ,
4629                                          UInt *linenum ) ;   4629                                          UInt *linenum ) ;
4630 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;   4630 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;
4631 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;   4631 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;
4632 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;   4632 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;
4633 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,   4633 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,
4634                                            Int n_dname , PtrdiffT *offset ) ;   4634                                            Int n_dname , PtrdiffT *offset ) ;
4635 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,   4635 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,
4636                                          Addr data_addr ) ;   4636                                          Addr data_addr ) ;
4637 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;   4637 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;
4638 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;   4638 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;
4639 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;   4639 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;
4640 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,   4640 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,
4641                                                         Bool arrays_only ) ;   4641                                                         Bool arrays_only ) ;
4642 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;   4642 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;
4643 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;   4643 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;
4644 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;   4644 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;
4645 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;   4645 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;
4646 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;   4646 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;
4647 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;   4647 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;
4648 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;   4648 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;
4649 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;   4649 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;
4650 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;   4650 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;
4651 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;   4651 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;
4652 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;   4652 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;
4653 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;   4653 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;
4654 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,   4654 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,
4655                                           Addr *avma , Addr *tocptr ,   4655                                           Addr *avma , Addr *tocptr ,
4656                                           UInt *size , HChar **name ,   4656                                           UInt *size , HChar **name ,
4657                                           Bool *isText , Bool *isIFunc ) ;   4657                                           Bool *isText , Bool *isIFunc ) ;
4658 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;   4658 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;
4659 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,   4659 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,
4660                                               Addr a ) ;   4660                                               Addr a ) ;
4661 extern void vgPlain_di_initialise(void) ;   4661 extern void vgPlain_di_initialise(void) ;
4662 extern ULong vgPlain_di_notify_mmap(Addr a , Bool allow_SkFileV ) ;   4662 extern ULong vgPlain_di_notify_mmap(Addr a , Bool allow_SkFileV ) ;
4663 extern void vgPlain_di_notify_munmap(Addr a , SizeT len ) ;   4663 extern void vgPlain_di_notify_munmap(Addr a , SizeT len ) ;
4664 extern void vgPlain_di_notify_mprotect(Addr a , SizeT len , UInt prot ) ;   4664 extern void vgPlain_di_notify_mprotect(Addr a , SizeT len , UInt prot ) ;
4665 extern void vgPlain_di_notify_pdb_debuginfo(Int fd , Addr avma ,   4665 extern void vgPlain_di_notify_pdb_debuginfo(Int fd , Addr avma ,
4666                                             SizeT total_size ,   4666                                             SizeT total_size ,
4667                                             PtrdiffT unknown_purpose__reloc ) ;   4667                                             PtrdiffT unknown_purpose__reloc ) ;
4668 extern void vgPlain_di_discard_ALL_debuginfo(void) ;   4668 extern void vgPlain_di_discard_ALL_debuginfo(void) ;
4669 extern Bool vgPlain_get_fnname_raw(Addr a , Char *buf , Int nbuf ) ;   4669 extern Bool vgPlain_get_fnname_raw(Addr a , Char *buf , Int nbuf ) ;
4670 extern Bool vgPlain_get_fnname_no_cxx_demangle(Addr a , Char *buf , Int nbuf ) ;   4670 extern Bool vgPlain_get_fnname_no_cxx_demangle(Addr a , Char *buf , Int nbuf ) ;
4671 extern Bool vgPlain_use_CF_info(D3UnwindRegs *uregs , Addr min_accessible ,   4671 extern Bool vgPlain_use_CF_info(D3UnwindRegs *uregs , Addr min_accessible ,
4672                                 Addr max_accessible ) ;   4672                                 Addr max_accessible ) ;
4673 extern Bool vgPlain_use_FPO_info(Addr *ipP , Addr *spP , Addr *fpP ,   4673 extern Bool vgPlain_use_FPO_info(Addr *ipP , Addr *spP , Addr *fpP ,
4674                                  Addr min_accessible , Addr max_accessible ) ;   4674                                  Addr min_accessible , Addr max_accessible ) ;
4675 extern Addr vgPlain_get_tocptr(Addr guest_code_addr ) ;   4675 extern Addr vgPlain_get_tocptr(Addr guest_code_addr ) ;
4676 extern Bool vgPlain_lookup_symbol_SLOW(UChar *sopatt , UChar *name ,   4676 extern Bool vgPlain_lookup_symbol_SLOW(UChar *sopatt , UChar *name ,
4677                                        Addr *pEnt , Addr *pToc ) ;   4677                                        Addr *pEnt , Addr *pToc ) ;
4678 extern void vgModuleLocal_sema_init(vg_sema_t *sema ) ;   4678 extern void vgModuleLocal_sema_init(vg_sema_t *sema ) ;
4679 extern void vgModuleLocal_sema_deinit(vg_sema_t *sema ) ;   4679 extern void vgModuleLocal_sema_deinit(vg_sema_t *sema ) ;
4680 extern void vgModuleLocal_sema_down(vg_sema_t *sema , Bool as_LL ) ;   4680 extern void vgModuleLocal_sema_down(vg_sema_t *sema , Bool as_LL ) ;
4681 extern void vgModuleLocal_sema_up(vg_sema_t *sema , Bool as_LL ) ;   4681 extern void vgModuleLocal_sema_up(vg_sema_t *sema , Bool as_LL ) ;
4682 ThreadId vgPlain_alloc_ThreadState(void) ;   4682 ThreadId vgPlain_alloc_ThreadState(void) ;
4683 void vgPlain_exit_thread(ThreadId tid ) ;   4683 void vgPlain_exit_thread(ThreadId tid ) ;
4684 void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;   4684 void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;
4685 void vgPlain_nuke_all_threads_except(ThreadId me , VgSchedReturnCode src ) ;   4685 void vgPlain_nuke_all_threads_except(ThreadId me , VgSchedReturnCode src ) ;
4686 void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;   4686 void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;
4687 void vgPlain_acquire_BigLock_LL(HChar *who ) ;   4687 void vgPlain_acquire_BigLock_LL(HChar *who ) ;
4688 void vgPlain_release_BigLock(ThreadId tid , ThreadStatus sleepstate ,   4688 void vgPlain_release_BigLock(ThreadId tid , ThreadStatus sleepstate ,
4689                              HChar *who ) ;   4689                              HChar *who ) ;
4690 void vgPlain_release_BigLock_LL(HChar *who ) ;   4690 void vgPlain_release_BigLock_LL(HChar *who ) ;
4691 void vgPlain_vg_yield(void) ;   4691 void vgPlain_vg_yield(void) ;
4692 VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;   4692 VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;
4693 ThreadId vgPlain_scheduler_init_phase1(void) ;   4693 ThreadId vgPlain_scheduler_init_phase1(void) ;
4694 void vgPlain_scheduler_init_phase2(ThreadId tid_main , Addr clstack_end ,   4694 void vgPlain_scheduler_init_phase2(ThreadId tid_main , Addr clstack_end ,
4695                                    SizeT clstack_size ) ;   4695                                    SizeT clstack_size ) ;
4696 void vgPlain_disable_vgdb_poll(void) ;   4696 void vgPlain_disable_vgdb_poll(void) ;
4697 void vgPlain_force_vgdb_poll(void) ;   4697 void vgPlain_force_vgdb_poll(void) ;
4698 ULong vgPlain_bbs_done(void) ;   4698 ULong vgPlain_bbs_done(void) ;
4699 void vgPlain_print_scheduler_stats(void) ;   4699 void vgPlain_print_scheduler_stats(void) ;
4700 Bool vgPlain_in_generated_code ;   4700 Bool vgPlain_in_generated_code ;
4701 void vgPlain_sanity_check_general(Bool force_expensive ) ;   4701 void vgPlain_sanity_check_general(Bool force_expensive ) ;
4702 extern void vgPlain_redir_notify_new_DebugInfo(DebugInfo * ) ;   4702 extern void vgPlain_redir_notify_new_DebugInfo(DebugInfo * ) ;
4703 extern void vgPlain_redir_notify_delete_DebugInfo(DebugInfo * ) ;   4703 extern void vgPlain_redir_notify_delete_DebugInfo(DebugInfo * ) ;
4704 extern void vgPlain_redir_initialise(void) ;   4704 extern void vgPlain_redir_initialise(void) ;
4705 extern void vgPlain_redir_add_ifunc_target(Addr old_from , Addr new_from ) ;   4705 extern void vgPlain_redir_add_ifunc_target(Addr old_from , Addr new_from ) ;
4706 extern Addr vgPlain_redir_do_lookup(Addr orig , Bool *isWrap ) ;   4706 extern Addr vgPlain_redir_do_lookup(Addr orig , Bool *isWrap ) ;
4707 Bool vgPlain_in_generated_code  =    (Bool )0;   4707 Bool vgPlain_in_generated_code  =    (Bool )0;
4708 UInt vgPlain_dispatch_ctr  ;   4708 UInt vgPlain_dispatch_ctr  ;
4709 static ULong bbs_done  =    (ULong )0;   4709 static ULong bbs_done  =    (ULong )0;
4710 static ULong vgdb_next_poll  ;   4710 static ULong vgdb_next_poll  ;
4711 static void do_client_request(ThreadId tid ) ;   4711 static void do_client_request(ThreadId tid ) ;
4712 static void scheduler_sanity(ThreadId tid ) ;   4712 static void scheduler_sanity(ThreadId tid ) ;
4713 static void mostly_clear_thread_record(ThreadId tid ) ;   4713 static void mostly_clear_thread_record(ThreadId tid ) ;
4714 static ULong n_scheduling_events_MINOR  =    (ULong )0;   4714 static ULong n_scheduling_events_MINOR  =    (ULong )0;
4715 static ULong n_scheduling_events_MAJOR  =    (ULong )0;   4715 static ULong n_scheduling_events_MAJOR  =    (ULong )0;
4716 static UInt sanity_fast_count  =    (UInt )0;   4716 static UInt sanity_fast_count  =    (UInt )0;
4717 static UInt sanity_slow_count  =    (UInt )0;   4717 static UInt sanity_slow_count  =    (UInt )0;
4718 void vgPlain_print_scheduler_stats(void)   4718 void vgPlain_print_scheduler_stats(void)
4719 {   4719 {
4720     4720  
4721     4721  
4722   {   4722   {
4723   vgPlain_message((VgMsgKind )2, "scheduler: %\'llu jumps (bb entries).\n",   4723   vgPlain_message((VgMsgKind )2, "scheduler: %\'llu jumps (bb entries).\n",
4724                   bbs_done);   4724                   bbs_done);
4725   vgPlain_message((VgMsgKind )2,   4725   vgPlain_message((VgMsgKind )2,
4726                   "scheduler: %\'llu/%\'llu major/minor sched events.\n",   4726                   "scheduler: %\'llu/%\'llu major/minor sched events.\n",
4727                   n_scheduling_events_MAJOR, n_scheduling_events_MINOR);   4727                   n_scheduling_events_MAJOR, n_scheduling_events_MINOR);
4728   vgPlain_message((VgMsgKind )2, "   sanity: %d cheap, %d expensive checks.\n",   4728   vgPlain_message((VgMsgKind )2, "   sanity: %d cheap, %d expensive checks.\n",
4729                   sanity_fast_count, sanity_slow_count);   4729                   sanity_fast_count, sanity_slow_count);
4730   return;   4730   return;
4731 }   4731 }
4732 }   4732 }
4733 static vg_sema_t the_BigLock  ;   4733 static vg_sema_t the_BigLock  ;
4734 static void print_sched_event(ThreadId tid , Char *what )   4734 static void print_sched_event(ThreadId tid , Char *what )
4735 {   4735 {
4736     4736  
4737     4737  
4738   {   4738   {
4739   vgPlain_message((VgMsgKind )2, "  SCHED[%d]: %s\n", tid, what);   4739   vgPlain_message((VgMsgKind )2, "  SCHED[%d]: %s\n", tid, what);
4740   return;   4740   return;
4741 }   4741 }
4742 }   4742 }
4743 static ULong bbs_done_lastcheck  =    (ULong )0;   4743 static ULong bbs_done_lastcheck  =    (ULong )0;
4744 static void maybe_show_sb_counts(void)   4744 static void maybe_show_sb_counts(void)
4745 {   4745 {
4746   Long delta ;   4746   Long delta ;
4747   long tmp ;   4747   long tmp ;
4748   long tmp___0 ;   4748   long tmp___0 ;
4749     4749  
4750   {   4750   {
4751   delta = (Long )(bbs_done - bbs_done_lastcheck);   4751   delta = (Long )(bbs_done - bbs_done_lastcheck);
4752   tmp = __builtin_expect((long )(! (! (delta >= 0LL))), 1L);   4752   tmp = __builtin_expect((long )(! (! (delta >= 0LL))), 1L);
4753   if (tmp) {   4753   if (tmp) {
4754     4754  
4755   } else {   4755   } else {
4756     vgPlain_assert_fail((Bool )1, (Char const   *)"delta >= 0",   4756     vgPlain_assert_fail((Bool )1, (Char const   *)"delta >= 0",
4757                         (Char const   *)"m_scheduler/scheduler.c", 171,   4757                         (Char const   *)"m_scheduler/scheduler.c", 171,
4758                         (Char const   *)"maybe_show_sb_counts", "");   4758                         (Char const   *)"maybe_show_sb_counts", "");
4759   }   4759   }
4760   tmp___0 = __builtin_expect((long )(! (! ((unsigned long long )delta >= 20000000ULL))),   4760   tmp___0 = __builtin_expect((long )(! (! ((unsigned long long )delta >= 20000000ULL))),
4761                              0L);   4761                              0L);
4762   if (tmp___0) {   4762   if (tmp___0) {
4763     vgPlain_umsg("%\'lld superblocks executed\n", bbs_done);   4763     vgPlain_umsg("%\'lld superblocks executed\n", bbs_done);
4764     bbs_done_lastcheck = bbs_done;   4764     bbs_done_lastcheck = bbs_done;
4765   } else {   4765   } else {
4766     4766  
4767   }   4767   }
4768   return;   4768   return;
4769 }   4769 }
4770 }   4770 }
4771 static HChar *name_of_sched_event(UInt event )   4771 static HChar *name_of_sched_event(UInt event )
4772 {   4772 {
4773     4773  
4774     4774  
4775   {   4775   {
4776   switch (event) {   4776   switch (event) {
4777   case 73U:   4777   case 73U:
4778   return ((HChar *)"SYSCALL");   4778   return ((HChar *)"SYSCALL");
4779   case 75U:   4779   case 75U:
4780   return ((HChar *)"INT32");   4780   return ((HChar *)"INT32");
4781   case 77U:   4781   case 77U:
4782   return ((HChar *)"INT128");   4782   return ((HChar *)"INT128");
4783   case 89U:   4783   case 89U:
4784   return ((HChar *)"INT129");   4784   return ((HChar *)"INT129");
4785   case 91U:   4785   case 91U:
4786   return ((HChar *)"INT130");   4786   return ((HChar *)"INT130");
4787   case 79U:   4787   case 79U:
4788   return ((HChar *)"SYSENTER");   4788   return ((HChar *)"SYSENTER");
4789   case 65U:   4789   case 65U:
4790   return ((HChar *)"CLIENTREQ");   4790   return ((HChar *)"CLIENTREQ");
4791   case 67U:   4791   case 67U:
4792   return ((HChar *)"YIELD");   4792   return ((HChar *)"YIELD");
4793   case 69U:   4793   case 69U:
4794   return ((HChar *)"NODECODE");   4794   return ((HChar *)"NODECODE");
4795   case 71U:   4795   case 71U:
4796   return ((HChar *)"MAPFAIL");   4796   return ((HChar *)"MAPFAIL");
4797   case 81U:   4797   case 81U:
4798   return ((HChar *)"NOREDIR");   4798   return ((HChar *)"NOREDIR");
4799   case 63U:   4799   case 63U:
4800   return ((HChar *)"EMWARN");   4800   return ((HChar *)"EMWARN");
4801   case 61U:   4801   case 61U:
4802   return ((HChar *)"TINVAL");   4802   return ((HChar *)"TINVAL");
4803   case 47U:   4803   case 47U:
4804   return ((HChar *)"INVFAILED");   4804   return ((HChar *)"INVFAILED");
4805   case 41U:   4805   case 41U:
4806   return ((HChar *)"COUNTERZERO");   4806   return ((HChar *)"COUNTERZERO");
4807   case 37U:   4807   case 37U:
4808   return ((HChar *)"FASTMISS");   4808   return ((HChar *)"FASTMISS");
4809   case 43U:   4809   case 43U:
4810   return ((HChar *)"FAULTSIGNAL");   4810   return ((HChar *)"FAULTSIGNAL");
4811   default:   4811   default:
4812   return ((HChar *)"??UNKNOWN??");   4812   return ((HChar *)"??UNKNOWN??");
4813   }   4813   }
4814 }   4814 }
4815 }   4815 }
4816 ThreadId vgPlain_alloc_ThreadState(void)   4816 ThreadId vgPlain_alloc_ThreadState(void)
4817 {   4817 {
4818   Int i ;   4818   Int i ;
4819     4819  
4820   {   4820   {
4821   i = 1;   4821   i = 1;
4822   while (i < 500) {   4822   while (i < 500) {
4823     if ((unsigned int )vgPlain_threads[i].status == 0U) {   4823     if ((unsigned int )vgPlain_threads[i].status == 0U) {
4824       vgPlain_threads[i].status = (ThreadStatus )1;   4824       vgPlain_threads[i].status = (ThreadStatus )1;
4825       vgPlain_threads[i].exitreason = (VgSchedReturnCode )0;   4825       vgPlain_threads[i].exitreason = (VgSchedReturnCode )0;
4826       return ((ThreadId )i);   4826       return ((ThreadId )i);
4827     } else {   4827     } else {
4828     4828  
4829     }   4829     }
4830     i ++;   4830     i ++;
4831   }   4831   }
4832   vgPlain_printf("vg_alloc_ThreadState: no free slots available\n");   4832   vgPlain_printf("vg_alloc_ThreadState: no free slots available\n");
4833   vgPlain_printf("Increase VG_N_THREADS, rebuild and try again.\n");   4833   vgPlain_printf("Increase VG_N_THREADS, rebuild and try again.\n");
4834   vgPlain_core_panic((Char *)"VG_N_THREADS is too low");   4834   vgPlain_core_panic((Char *)"VG_N_THREADS is too low");
4835 }   4835 }
4836 }   4836 }
4837 void vgPlain_acquire_BigLock(ThreadId tid , HChar *who )   4837 void vgPlain_acquire_BigLock(ThreadId tid , HChar *who )
4838 {   4838 {
4839   ThreadState *tst ;   4839   ThreadState *tst ;
4840   long tmp ;   4840   long tmp ;
4841   long tmp___0 ;   4841   long tmp___0 ;
4842   Addr gsp ;   4842   Addr gsp ;
4843   Addr tmp___1 ;   4843   Addr tmp___1 ;
4844   HChar buf[150] ;   4844   HChar buf[150] ;
4845   SizeT tmp___2 ;   4845   SizeT tmp___2 ;
4846   int tmp___3 ;   4846   int tmp___3 ;
4847   long tmp___4 ;   4847   long tmp___4 ;
4848     4848  
4849   {   4849   {
4850   vgModuleLocal_sema_down(& the_BigLock, (Bool )0);   4850   vgModuleLocal_sema_down(& the_BigLock, (Bool )0);
4851   tst = vgPlain_get_ThreadState(tid);   4851   tst = vgPlain_get_ThreadState(tid);
4852   tmp = __builtin_expect((long )(! (! ((unsigned int )tst->status != 2U))), 1L);   4852   tmp = __builtin_expect((long )(! (! ((unsigned int )tst->status != 2U))), 1L);
4853   if (tmp) {   4853   if (tmp) {
4854     4854  
4855   } else {   4855   } else {
4856     vgPlain_assert_fail((Bool )1,   4856     vgPlain_assert_fail((Bool )1,
4857                         (Char const   *)"tst->status != VgTs_Runnable",   4857                         (Char const   *)"tst->status != VgTs_Runnable",
4858                         (Char const   *)"m_scheduler/scheduler.c", 248,   4858                         (Char const   *)"m_scheduler/scheduler.c", 248,
4859                         (Char const   *)"vgPlain_acquire_BigLock", "");   4859                         (Char const   *)"vgPlain_acquire_BigLock", "");
4860   }   4860   }
4861   tst->status = (ThreadStatus )2;   4861   tst->status = (ThreadStatus )2;
4862   if (vgPlain_running_tid != 0U) {   4862   if (vgPlain_running_tid != 0U) {
4863     vgPlain_printf("tid %d found %d running\n", tid, vgPlain_running_tid);   4863     vgPlain_printf("tid %d found %d running\n", tid, vgPlain_running_tid);
4864   } else {   4864   } else {
4865     4865  
4866   }   4866   }
4867   tmp___0 = __builtin_expect((long )(! (! (vgPlain_running_tid == 0U))), 1L);   4867   tmp___0 = __builtin_expect((long )(! (! (vgPlain_running_tid == 0U))), 1L);
4868   if (tmp___0) {   4868   if (tmp___0) {
4869     4869  
4870   } else {   4870   } else {
4871     vgPlain_assert_fail((Bool )1,   4871     vgPlain_assert_fail((Bool )1,
4872                         (Char const   *)"VG_(running_tid) == VG_INVALID_THREADID",   4872                         (Char const   *)"VG_(running_tid) == VG_INVALID_THREADID",
4873                         (Char const   *)"m_scheduler/scheduler.c", 254,   4873                         (Char const   *)"m_scheduler/scheduler.c", 254,
4874                         (Char const   *)"vgPlain_acquire_BigLock", "");   4874                         (Char const   *)"vgPlain_acquire_BigLock", "");
4875   }   4875   }
4876   vgPlain_running_tid = tid;   4876   vgPlain_running_tid = tid;
4877   tmp___1 = vgPlain_get_SP(tid);   4877   tmp___1 = vgPlain_get_SP(tid);
4878   gsp = tmp___1;   4878   gsp = tmp___1;
4879   vgPlain_unknown_SP_update(gsp, gsp, (UInt )0);   4879   vgPlain_unknown_SP_update(gsp, gsp, (UInt )0);
4880   if (vgPlain_clo_trace_sched) {   4880   if (vgPlain_clo_trace_sched) {
4881     tmp___2 = vgPlain_strlen((Char const   *)who);   4881     tmp___2 = vgPlain_strlen((Char const   *)who);
4882     if (tmp___2 <= 100UL) {   4882     if (tmp___2 <= 100UL) {
4883       tmp___3 = 1;   4883       tmp___3 = 1;
4884     } else {   4884     } else {
4885       tmp___3 = 0;   4885       tmp___3 = 0;
4886     }   4886     }
4887     tmp___4 = __builtin_expect((long )tmp___3, 1L);   4887     tmp___4 = __builtin_expect((long )tmp___3, 1L);
4888     if (tmp___4) {   4888     if (tmp___4) {
4889     4889  
4890     } else {   4890     } else {
4891       vgPlain_assert_fail((Bool )1,   4891       vgPlain_assert_fail((Bool )1,
4892                           (Char const   *)"VG_(strlen)(who) <= 150-50",   4892                           (Char const   *)"VG_(strlen)(who) <= 150-50",
4893                           (Char const   *)"m_scheduler/scheduler.c", 263,   4893                           (Char const   *)"m_scheduler/scheduler.c", 263,
4894                           (Char const   *)"vgPlain_acquire_BigLock", "");   4894                           (Char const   *)"vgPlain_acquire_BigLock", "");
4895     }   4895     }
4896     vgPlain_sprintf((Char *)(buf), " acquired lock (%s)", who);   4896     vgPlain_sprintf((Char *)(buf), " acquired lock (%s)", who);
4897     print_sched_event(tid, (Char *)(buf));   4897     print_sched_event(tid, (Char *)(buf));
4898   } else {   4898   } else {
4899     4899  
4900   }   4900   }
4901   return;   4901   return;
4902 }   4902 }
4903 }   4903 }
4904 void vgPlain_release_BigLock(ThreadId tid , ThreadStatus sleepstate ,   4904 void vgPlain_release_BigLock(ThreadId tid , ThreadStatus sleepstate ,
4905                              HChar *who )   4905                              HChar *who )
4906 {   4906 {
4907   ThreadState *tst ;   4907   ThreadState *tst ;
4908   ThreadState *tmp ;   4908   ThreadState *tmp ;
4909   long tmp___0 ;   4909   long tmp___0 ;
4910   int tmp___1 ;   4910   int tmp___1 ;
4911   long tmp___2 ;   4911   long tmp___2 ;
4912   long tmp___3 ;   4912   long tmp___3 ;
4913   Char buf[200] ;   4913   Char buf[200] ;
4914   SizeT tmp___4 ;   4914   SizeT tmp___4 ;
4915   int tmp___5 ;   4915   int tmp___5 ;
4916   long tmp___6 ;   4916   long tmp___6 ;
4917   HChar const   *tmp___7 ;   4917   HChar const   *tmp___7 ;
4918     4918  
4919   {   4919   {
4920   tmp = vgPlain_get_ThreadState(tid);   4920   tmp = vgPlain_get_ThreadState(tid);
4921   tst = tmp;   4921   tst = tmp;
4922   tmp___0 = __builtin_expect((long )(! (! ((unsigned int )tst->status == 2U))),   4922   tmp___0 = __builtin_expect((long )(! (! ((unsigned int )tst->status == 2U))),
4923                              1L);   4923                              1L);
4924   if (tmp___0) {   4924   if (tmp___0) {
4925     4925  
4926   } else {   4926   } else {
4927     vgPlain_assert_fail((Bool )1,   4927     vgPlain_assert_fail((Bool )1,
4928                         (Char const   *)"tst->status == VgTs_Runnable",   4928                         (Char const   *)"tst->status == VgTs_Runnable",
4929                         (Char const   *)"m_scheduler/scheduler.c", 280,   4929                         (Char const   *)"m_scheduler/scheduler.c", 280,
4930                         (Char const   *)"vgPlain_release_BigLock", "");   4930                         (Char const   *)"vgPlain_release_BigLock", "");
4931   }   4931   }
4932   if ((unsigned int )sleepstate == 3U) {   4932   if ((unsigned int )sleepstate == 3U) {
4933     tmp___1 = 1;   4933     tmp___1 = 1;
4934   } else   4934   } else
4935   if ((unsigned int )sleepstate == 4U) {   4935   if ((unsigned int )sleepstate == 4U) {
4936     tmp___1 = 1;   4936     tmp___1 = 1;
4937   } else {   4937   } else {
4938     tmp___1 = 0;   4938     tmp___1 = 0;
4939   }   4939   }
4940   tmp___2 = __builtin_expect((long )tmp___1, 1L);   4940   tmp___2 = __builtin_expect((long )tmp___1, 1L);
4941   if (tmp___2) {   4941   if (tmp___2) {
4942     4942  
4943   } else {   4943   } else {
4944     vgPlain_assert_fail((Bool )1,   4944     vgPlain_assert_fail((Bool )1,
4945                         (Char const   *)"sleepstate == VgTs_WaitSys || sleepstate == VgTs_Yielding",   4945                         (Char const   *)"sleepstate == VgTs_WaitSys || sleepstate == VgTs_Yielding",
4946                         (Char const   *)"m_scheduler/scheduler.c", 283,   4946                         (Char const   *)"m_scheduler/scheduler.c", 283,
4947                         (Char const   *)"vgPlain_release_BigLock", "");   4947                         (Char const   *)"vgPlain_release_BigLock", "");
4948   }   4948   }
4949   tst->status = sleepstate;   4949   tst->status = sleepstate;
4950   tmp___3 = __builtin_expect((long )(! (! (vgPlain_running_tid == tid))), 1L);   4950   tmp___3 = __builtin_expect((long )(! (! (vgPlain_running_tid == tid))), 1L);
4951   if (tmp___3) {   4951   if (tmp___3) {
4952     4952  
4953   } else {   4953   } else {
4954     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(running_tid) == tid",   4954     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(running_tid) == tid",
4955                         (Char const   *)"m_scheduler/scheduler.c", 287,   4955                         (Char const   *)"m_scheduler/scheduler.c", 287,
4956                         (Char const   *)"vgPlain_release_BigLock", "");   4956                         (Char const   *)"vgPlain_release_BigLock", "");
4957   }   4957   }
4958   vgPlain_running_tid = (ThreadId )0;   4958   vgPlain_running_tid = (ThreadId )0;
4959   if (vgPlain_clo_trace_sched) {   4959   if (vgPlain_clo_trace_sched) {
4960     tmp___4 = vgPlain_strlen((Char const   *)who);   4960     tmp___4 = vgPlain_strlen((Char const   *)who);
4961     if (tmp___4 <= 100UL) {   4961     if (tmp___4 <= 100UL) {
4962       tmp___5 = 1;   4962       tmp___5 = 1;
4963     } else {   4963     } else {
4964       tmp___5 = 0;   4964       tmp___5 = 0;
4965     }   4965     }
4966     tmp___6 = __builtin_expect((long )tmp___5, 1L);   4966     tmp___6 = __builtin_expect((long )tmp___5, 1L);
4967     if (tmp___6) {   4967     if (tmp___6) {
4968     4968  
4969     } else {   4969     } else {
4970       vgPlain_assert_fail((Bool )1,   4970       vgPlain_assert_fail((Bool )1,
4971                           (Char const   *)"VG_(strlen)(who) <= 200-100",   4971                           (Char const   *)"VG_(strlen)(who) <= 200-100",
4972                           (Char const   *)"m_scheduler/scheduler.c", 292,   4972                           (Char const   *)"m_scheduler/scheduler.c", 292,
4973                           (Char const   *)"vgPlain_release_BigLock", "");   4973                           (Char const   *)"vgPlain_release_BigLock", "");
4974     }   4974     }
4975     tmp___7 = vgPlain_name_of_ThreadStatus(sleepstate);   4975     tmp___7 = vgPlain_name_of_ThreadStatus(sleepstate);
4976     vgPlain_sprintf(buf, "releasing lock (%s) -> %s", who, tmp___7);   4976     vgPlain_sprintf(buf, "releasing lock (%s) -> %s", who, tmp___7);
4977     print_sched_event(tid, buf);   4977     print_sched_event(tid, buf);
4978   } else {   4978   } else {
4979     4979  
4980   }   4980   }
4981   vgModuleLocal_sema_up(& the_BigLock, (Bool )0);   4981   vgModuleLocal_sema_up(& the_BigLock, (Bool )0);
4982   return;   4982   return;
4983 }   4983 }
4984 }   4984 }
4985 void vgPlain_acquire_BigLock_LL(HChar *who )   4985 void vgPlain_acquire_BigLock_LL(HChar *who )
4986 {   4986 {
4987     4987  
4988     4988  
4989   {   4989   {
4990   vgModuleLocal_sema_down(& the_BigLock, (Bool )1);   4990   vgModuleLocal_sema_down(& the_BigLock, (Bool )1);
4991   return;   4991   return;
4992 }   4992 }
4993 }   4993 }
4994 void vgPlain_release_BigLock_LL(HChar *who )   4994 void vgPlain_release_BigLock_LL(HChar *who )
4995 {   4995 {
4996     4996  
4997     4997  
4998   {   4998   {
4999   vgModuleLocal_sema_up(& the_BigLock, (Bool )1);   4999   vgModuleLocal_sema_up(& the_BigLock, (Bool )1);
5000   return;   5000   return;
5001 }   5001 }
5002 }   5002 }
5003 void vgPlain_exit_thread(ThreadId tid )   5003 void vgPlain_exit_thread(ThreadId tid )
5004 {   5004 {
5005   Bool tmp ;   5005   Bool tmp ;
5006   int tmp___0 ;   5006   int tmp___0 ;
5007   long tmp___1 ;   5007   long tmp___1 ;
5008   Bool tmp___2 ;   5008   Bool tmp___2 ;
5009   int tmp___3 ;   5009   int tmp___3 ;
5010   long tmp___4 ;   5010   long tmp___4 ;
5011   Bool tmp___5 ;   5011   Bool tmp___5 ;
5012   int tmp___6 ;   5012   int tmp___6 ;
5013   long tmp___7 ;   5013   long tmp___7 ;
5014   long tmp___8 ;   5014   long tmp___8 ;
5015     5015  
5016   {   5016   {
5017   tmp = vgPlain_is_valid_tid(tid);   5017   tmp = vgPlain_is_valid_tid(tid);
5018   if (tmp) {   5018   if (tmp) {
5019     tmp___0 = 1;   5019     tmp___0 = 1;
5020   } else {   5020   } else {
5021     tmp___0 = 0;   5021     tmp___0 = 0;
5022   }   5022   }
5023   tmp___1 = __builtin_expect((long )tmp___0, 1L);   5023   tmp___1 = __builtin_expect((long )tmp___0, 1L);
5024   if (tmp___1) {   5024   if (tmp___1) {
5025     5025  
5026   } else {   5026   } else {
5027     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",   5027     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",
5028                         (Char const   *)"m_scheduler/scheduler.c", 321,   5028                         (Char const   *)"m_scheduler/scheduler.c", 321,
5029                         (Char const   *)"vgPlain_exit_thread", "");   5029                         (Char const   *)"vgPlain_exit_thread", "");
5030   }   5030   }
5031   tmp___2 = vgPlain_is_running_thread(tid);   5031   tmp___2 = vgPlain_is_running_thread(tid);
5032   if (tmp___2) {   5032   if (tmp___2) {
5033     tmp___3 = 1;   5033     tmp___3 = 1;
5034   } else {   5034   } else {
5035     tmp___3 = 0;   5035     tmp___3 = 0;
5036   }   5036   }
5037   tmp___4 = __builtin_expect((long )tmp___3, 1L);   5037   tmp___4 = __builtin_expect((long )tmp___3, 1L);
5038   if (tmp___4) {   5038   if (tmp___4) {
5039     5039  
5040   } else {   5040   } else {
5041     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",   5041     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",
5042                         (Char const   *)"m_scheduler/scheduler.c", 322,   5042                         (Char const   *)"m_scheduler/scheduler.c", 322,
5043                         (Char const   *)"vgPlain_exit_thread", "");   5043                         (Char const   *)"vgPlain_exit_thread", "");
5044   }   5044   }
5045   tmp___5 = vgPlain_is_exiting(tid);   5045   tmp___5 = vgPlain_is_exiting(tid);
5046   if (tmp___5) {   5046   if (tmp___5) {
5047     tmp___6 = 1;   5047     tmp___6 = 1;
5048   } else {   5048   } else {
5049     tmp___6 = 0;   5049     tmp___6 = 0;
5050   }   5050   }
5051   tmp___7 = __builtin_expect((long )tmp___6, 1L);   5051   tmp___7 = __builtin_expect((long )tmp___6, 1L);
5052   if (tmp___7) {   5052   if (tmp___7) {
5053     5053  
5054   } else {   5054   } else {
5055     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_exiting)(tid)",   5055     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_exiting)(tid)",
5056                         (Char const   *)"m_scheduler/scheduler.c", 323,   5056                         (Char const   *)"m_scheduler/scheduler.c", 323,
5057                         (Char const   *)"vgPlain_exit_thread", "");   5057                         (Char const   *)"vgPlain_exit_thread", "");
5058   }   5058   }
5059   mostly_clear_thread_record(tid);   5059   mostly_clear_thread_record(tid);
5060   vgPlain_running_tid = (ThreadId )0;   5060   vgPlain_running_tid = (ThreadId )0;
5061   tmp___8 = __builtin_expect((long )(! (! ((unsigned int )vgPlain_threads[tid].exitreason != 0U))),   5061   tmp___8 = __builtin_expect((long )(! (! ((unsigned int )vgPlain_threads[tid].exitreason != 0U))),
5062                              1L);   5062                              1L);
5063   if (tmp___8) {   5063   if (tmp___8) {
5064     5064  
5065   } else {   5065   } else {
5066     vgPlain_assert_fail((Bool )1,   5066     vgPlain_assert_fail((Bool )1,
5067                         (Char const   *)"VG_(threads)[tid].exitreason != VgSrc_None",   5067                         (Char const   *)"VG_(threads)[tid].exitreason != VgSrc_None",
5068                         (Char const   *)"m_scheduler/scheduler.c", 329,   5068                         (Char const   *)"m_scheduler/scheduler.c", 329,
5069                         (Char const   *)"vgPlain_exit_thread", "");   5069                         (Char const   *)"vgPlain_exit_thread", "");
5070   }   5070   }
5071   if (vgPlain_clo_trace_sched) {   5071   if (vgPlain_clo_trace_sched) {
5072     print_sched_event(tid, (Char *)"release lock in VG_(exit_thread)");   5072     print_sched_event(tid, (Char *)"release lock in VG_(exit_thread)");
5073   } else {   5073   } else {
5074     5074  
5075   }   5075   }
5076   vgModuleLocal_sema_up(& the_BigLock, (Bool )0);   5076   vgModuleLocal_sema_up(& the_BigLock, (Bool )0);
5077   return;   5077   return;
5078 }   5078 }
5079 }   5079 }
5080 void vgPlain_get_thread_out_of_syscall(ThreadId tid )   5080 void vgPlain_get_thread_out_of_syscall(ThreadId tid )
5081 {   5081 {
5082   Bool tmp ;   5082   Bool tmp ;
5083   int tmp___0 ;   5083   int tmp___0 ;
5084   long tmp___1 ;   5084   long tmp___1 ;
5085   Bool tmp___2 ;   5085   Bool tmp___2 ;
5086   int tmp___3 ;   5086   int tmp___3 ;
5087   long tmp___4 ;   5087   long tmp___4 ;
5088   Int r  __attribute__((__unused__)) ;   5088   Int r  __attribute__((__unused__)) ;
5089   Int tmp___5 ;   5089   Int tmp___5 ;
5090     5090  
5091   {   5091   {
5092   tmp = vgPlain_is_valid_tid(tid);   5092   tmp = vgPlain_is_valid_tid(tid);
5093   if (tmp) {   5093   if (tmp) {
5094     tmp___0 = 1;   5094     tmp___0 = 1;
5095   } else {   5095   } else {
5096     tmp___0 = 0;   5096     tmp___0 = 0;
5097   }   5097   }
5098   tmp___1 = __builtin_expect((long )tmp___0, 1L);   5098   tmp___1 = __builtin_expect((long )tmp___0, 1L);
5099   if (tmp___1) {   5099   if (tmp___1) {
5100     5100  
5101   } else {   5101   } else {
5102     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",   5102     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",
5103                         (Char const   *)"m_scheduler/scheduler.c", 342,   5103                         (Char const   *)"m_scheduler/scheduler.c", 342,
5104                         (Char const   *)"vgPlain_get_thread_out_of_syscall", "");   5104                         (Char const   *)"vgPlain_get_thread_out_of_syscall", "");
5105   }   5105   }
5106   tmp___2 = vgPlain_is_running_thread(tid);   5106   tmp___2 = vgPlain_is_running_thread(tid);
5107   if (tmp___2) {   5107   if (tmp___2) {
5108     tmp___3 = 0;   5108     tmp___3 = 0;
5109   } else {   5109   } else {
5110     tmp___3 = 1;   5110     tmp___3 = 1;
5111   }   5111   }
5112   tmp___4 = __builtin_expect((long )tmp___3, 1L);   5112   tmp___4 = __builtin_expect((long )tmp___3, 1L);
5113   if (tmp___4) {   5113   if (tmp___4) {
5114     5114  
5115   } else {   5115   } else {
5116     vgPlain_assert_fail((Bool )1,   5116     vgPlain_assert_fail((Bool )1,
5117                         (Char const   *)"!VG_(is_running_thread)(tid)",   5117                         (Char const   *)"!VG_(is_running_thread)(tid)",
5118                         (Char const   *)"m_scheduler/scheduler.c", 343,   5118                         (Char const   *)"m_scheduler/scheduler.c", 343,
5119                         (Char const   *)"vgPlain_get_thread_out_of_syscall", "");   5119                         (Char const   *)"vgPlain_get_thread_out_of_syscall", "");
5120   }   5120   }
5121   if ((unsigned int )vgPlain_threads[tid].status == 3U) {   5121   if ((unsigned int )vgPlain_threads[tid].status == 3U) {
5122     if (vgPlain_clo_trace_signals) {   5122     if (vgPlain_clo_trace_signals) {
5123       vgPlain_message((VgMsgKind )2,   5123       vgPlain_message((VgMsgKind )2,
5124                       "get_thread_out_of_syscall zaps tid %d lwp %d\n", tid,   5124                       "get_thread_out_of_syscall zaps tid %d lwp %d\n", tid,
5125                       vgPlain_threads[tid].os_state.lwpid);   5125                       vgPlain_threads[tid].os_state.lwpid);
5126     } else {   5126     } else {
5127     5127  
5128     }   5128     }
5129     tmp___5 = vgPlain_tkill(vgPlain_threads[tid].os_state.lwpid,   5129     tmp___5 = vgPlain_tkill(vgPlain_threads[tid].os_state.lwpid,
5130                             vgPlain_max_signal);   5130                             vgPlain_max_signal);
5131     r = tmp___5;   5131     r = tmp___5;
5132   } else {   5132   } else {
5133     5133  
5134   }   5134   }
5135   return;   5135   return;
5136 }   5136 }
5137 }   5137 }
5138 void vgPlain_vg_yield(void)   5138 void vgPlain_vg_yield(void)
5139 {   5139 {
5140   ThreadId tid ;   5140   ThreadId tid ;
5141   long tmp ;   5141   long tmp ;
5142   Int tmp___0 ;   5142   Int tmp___0 ;
5143   int tmp___1 ;   5143   int tmp___1 ;
5144   long tmp___2 ;   5144   long tmp___2 ;
5145     5145  
5146   {   5146   {
5147   tid = vgPlain_running_tid;   5147   tid = vgPlain_running_tid;
5148   tmp = __builtin_expect((long )(! (! (tid != 0U))), 1L);   5148   tmp = __builtin_expect((long )(! (! (tid != 0U))), 1L);
5149   if (tmp) {   5149   if (tmp) {
5150     5150  
5151   } else {   5151   } else {
5152     vgPlain_assert_fail((Bool )1, (Char const   *)"tid != VG_INVALID_THREADID",   5152     vgPlain_assert_fail((Bool )1, (Char const   *)"tid != VG_INVALID_THREADID",
5153                         (Char const   *)"m_scheduler/scheduler.c", 389,   5153                         (Char const   *)"m_scheduler/scheduler.c", 389,
5154                         (Char const   *)"vgPlain_vg_yield", "");   5154                         (Char const   *)"vgPlain_vg_yield", "");
5155   }   5155   }
5156   tmp___0 = vgPlain_gettid();   5156   tmp___0 = vgPlain_gettid();
5157   if (vgPlain_threads[tid].os_state.lwpid == tmp___0) {   5157   if (vgPlain_threads[tid].os_state.lwpid == tmp___0) {
5158     tmp___1 = 1;   5158     tmp___1 = 1;
5159   } else {   5159   } else {
5160     tmp___1 = 0;   5160     tmp___1 = 0;
5161   }   5161   }
5162   tmp___2 = __builtin_expect((long )tmp___1, 1L);   5162   tmp___2 = __builtin_expect((long )tmp___1, 1L);
5163   if (tmp___2) {   5163   if (tmp___2) {
5164     5164  
5165   } else {   5165   } else {
5166     vgPlain_assert_fail((Bool )1,   5166     vgPlain_assert_fail((Bool )1,
5167                         (Char const   *)"VG_(threads)[tid].os_state.lwpid == VG_(gettid)()",   5167                         (Char const   *)"VG_(threads)[tid].os_state.lwpid == VG_(gettid)()",
5168                         (Char const   *)"m_scheduler/scheduler.c", 390,   5168                         (Char const   *)"m_scheduler/scheduler.c", 390,
5169                         (Char const   *)"vgPlain_vg_yield", "");   5169                         (Char const   *)"vgPlain_vg_yield", "");
5170   }   5170   }
5171   vgPlain_release_BigLock(tid, (ThreadStatus )4, (HChar *)"VG_(vg_yield)");   5171   vgPlain_release_BigLock(tid, (ThreadStatus )4, (HChar *)"VG_(vg_yield)");
5172   vgPlain_do_syscall((UWord )158, (UWord )0, (UWord )0, (UWord )0, (UWord )0,   5172   vgPlain_do_syscall((UWord )158, (UWord )0, (UWord )0, (UWord )0, (UWord )0,
5173                      (UWord )0, (UWord )0, (UWord )0, (UWord )0);   5173                      (UWord )0, (UWord )0, (UWord )0, (UWord )0);
5174   vgPlain_acquire_BigLock(tid, (HChar *)"VG_(vg_yield)");   5174   vgPlain_acquire_BigLock(tid, (HChar *)"VG_(vg_yield)");
5175   return;   5175   return;
5176 }   5176 }
5177 }   5177 }
5178 static void block_signals(void)   5178 static void block_signals(void)
5179 {   5179 {
5180   vki_sigset_t mask ;   5180   vki_sigset_t mask ;
5181     5181  
5182   {   5182   {
5183   vgPlain_sigfillset(& mask);   5183   vgPlain_sigfillset(& mask);
5184   vgPlain_sigdelset(& mask, 11);   5184   vgPlain_sigdelset(& mask, 11);
5185   vgPlain_sigdelset(& mask, 7);   5185   vgPlain_sigdelset(& mask, 7);
5186   vgPlain_sigdelset(& mask, 8);   5186   vgPlain_sigdelset(& mask, 8);
5187   vgPlain_sigdelset(& mask, 4);   5187   vgPlain_sigdelset(& mask, 4);
5188   vgPlain_sigdelset(& mask, 5);   5188   vgPlain_sigdelset(& mask, 5);
5189   vgPlain_sigdelset(& mask, 19);   5189   vgPlain_sigdelset(& mask, 19);
5190   vgPlain_sigdelset(& mask, 9);   5190   vgPlain_sigdelset(& mask, 9);
5191   vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& mask),   5191   vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& mask),
5192                       (vki_sigset_t *)((void *)0));   5192                       (vki_sigset_t *)((void *)0));
5193   return;   5193   return;
5194 }   5194 }
5195 }   5195 }
5196 static void os_state_clear(ThreadState *tst )   5196 static void os_state_clear(ThreadState *tst )
5197 {   5197 {
5198     5198  
5199     5199  
5200   {   5200   {
5201   tst->os_state.lwpid = 0;   5201   tst->os_state.lwpid = 0;
5202   tst->os_state.threadgroup = 0;   5202   tst->os_state.threadgroup = 0;
5203   return;   5203   return;
5204 }   5204 }
5205 }   5205 }
5206 static void os_state_init(ThreadState *tst )   5206 static void os_state_init(ThreadState *tst )
5207 {   5207 {
5208     5208  
5209     5209  
5210   {   5210   {
5211   tst->os_state.valgrind_stack_base = (Addr )0;   5211   tst->os_state.valgrind_stack_base = (Addr )0;
5212   tst->os_state.valgrind_stack_init_SP = (Addr )0;   5212   tst->os_state.valgrind_stack_init_SP = (Addr )0;
5213   os_state_clear(tst);   5213   os_state_clear(tst);
5214   return;   5214   return;
5215 }   5215 }
5216 }   5216 }
5217 static void mostly_clear_thread_record(ThreadId tid )   5217 static void mostly_clear_thread_record(ThreadId tid )
5218 {   5218 {
5219   vki_sigset_t savedmask ;   5219   vki_sigset_t savedmask ;
5220   int tmp ;   5220   int tmp ;
5221   long tmp___0 ;   5221   long tmp___0 ;
5222     5222  
5223   {   5223   {
5224   if (tid >= 0U) {   5224   if (tid >= 0U) {
5225     if (tid < 500U) {   5225     if (tid < 500U) {
5226       tmp = 1;   5226       tmp = 1;
5227     } else {   5227     } else {
5228       tmp = 0;   5228       tmp = 0;
5229     }   5229     }
5230   } else {   5230   } else {
5231     tmp = 0;   5231     tmp = 0;
5232   }   5232   }
5233   tmp___0 = __builtin_expect((long )tmp, 1L);   5233   tmp___0 = __builtin_expect((long )tmp, 1L);
5234   if (tmp___0) {   5234   if (tmp___0) {
5235     5235  
5236   } else {   5236   } else {
5237     vgPlain_assert_fail((Bool )1,   5237     vgPlain_assert_fail((Bool )1,
5238                         (Char const   *)"tid >= 0 && tid < VG_N_THREADS",   5238                         (Char const   *)"tid >= 0 && tid < VG_N_THREADS",
5239                         (Char const   *)"m_scheduler/scheduler.c", 462,   5239                         (Char const   *)"m_scheduler/scheduler.c", 462,
5240                         (Char const   *)"mostly_clear_thread_record", "");   5240                         (Char const   *)"mostly_clear_thread_record", "");
5241   }   5241   }
5242   vgPlain_cleanup_thread(& vgPlain_threads[tid].arch);   5242   vgPlain_cleanup_thread(& vgPlain_threads[tid].arch);
5243   vgPlain_threads[tid].tid = tid;   5243   vgPlain_threads[tid].tid = tid;
5244   vgPlain_threads[tid].status = (ThreadStatus )5;   5244   vgPlain_threads[tid].status = (ThreadStatus )5;
5245   vgPlain_sigemptyset(& vgPlain_threads[tid].sig_mask);   5245   vgPlain_sigemptyset(& vgPlain_threads[tid].sig_mask);
5246   vgPlain_sigemptyset(& vgPlain_threads[tid].tmp_sig_mask);   5246   vgPlain_sigemptyset(& vgPlain_threads[tid].tmp_sig_mask);
5247   os_state_clear(& vgPlain_threads[tid]);   5247   os_state_clear(& vgPlain_threads[tid]);
5248   vgPlain_threads[tid].altstack.ss_sp = (void *)3735928559U;   5248   vgPlain_threads[tid].altstack.ss_sp = (void *)3735928559U;
5249   vgPlain_threads[tid].altstack.ss_size = (vki_size_t )0;   5249   vgPlain_threads[tid].altstack.ss_size = (vki_size_t )0;
5250   vgPlain_threads[tid].altstack.ss_flags = 2;   5250   vgPlain_threads[tid].altstack.ss_flags = 2;
5251   vgPlain_clear_out_queued_signals(tid, & savedmask);   5251   vgPlain_clear_out_queued_signals(tid, & savedmask);
5252   vgPlain_threads[tid].sched_jmpbuf_valid = (Bool )0;   5252   vgPlain_threads[tid].sched_jmpbuf_valid = (Bool )0;
5253   return;   5253   return;
5254 }   5254 }
5255 }   5255 }
5256 static void sched_fork_cleanup(ThreadId me )   5256 static void sched_fork_cleanup(ThreadId me )
5257 {   5257 {
5258   ThreadId tid ;   5258   ThreadId tid ;
5259   long tmp ;   5259   long tmp ;
5260     5260  
5261   {   5261   {
5262   tmp = __builtin_expect((long )(! (! (vgPlain_running_tid == me))), 1L);   5262   tmp = __builtin_expect((long )(! (! (vgPlain_running_tid == me))), 1L);
5263   if (tmp) {   5263   if (tmp) {
5264     5264  
5265   } else {   5265   } else {
5266     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(running_tid) == me",   5266     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(running_tid) == me",
5267                         (Char const   *)"m_scheduler/scheduler.c", 505,   5267                         (Char const   *)"m_scheduler/scheduler.c", 505,
5268                         (Char const   *)"sched_fork_cleanup", "");   5268                         (Char const   *)"sched_fork_cleanup", "");
5269   }   5269   }
5270   vgPlain_threads[me].os_state.lwpid = vgPlain_gettid();   5270   vgPlain_threads[me].os_state.lwpid = vgPlain_gettid();
5271   vgPlain_threads[me].os_state.threadgroup = vgPlain_getpid();   5271   vgPlain_threads[me].os_state.threadgroup = vgPlain_getpid();
5272   tid = (ThreadId )1;   5272   tid = (ThreadId )1;
5273   while (tid < 500U) {   5273   while (tid < 500U) {
5274     if (tid != me) {   5274     if (tid != me) {
5275       mostly_clear_thread_record(tid);   5275       mostly_clear_thread_record(tid);
5276       vgPlain_threads[tid].status = (ThreadStatus )0;   5276       vgPlain_threads[tid].status = (ThreadStatus )0;
5277       vgPlain_clear_syscallInfo((Int )tid);   5277       vgPlain_clear_syscallInfo((Int )tid);
5278     } else {   5278     } else {
5279     5279  
5280     }   5280     }
5281     tid ++;   5281     tid ++;
5282   }   5282   }
5283   vgModuleLocal_sema_deinit(& the_BigLock);   5283   vgModuleLocal_sema_deinit(& the_BigLock);
5284   vgModuleLocal_sema_init(& the_BigLock);   5284   vgModuleLocal_sema_init(& the_BigLock);
5285   vgModuleLocal_sema_down(& the_BigLock, (Bool )0);   5285   vgModuleLocal_sema_down(& the_BigLock, (Bool )0);
5286   return;   5286   return;
5287 }   5287 }
5288 }   5288 }
5289 ThreadId vgPlain_scheduler_init_phase1(void)   5289 ThreadId vgPlain_scheduler_init_phase1(void)
5290 {   5290 {
5291   Int i ;   5291   Int i ;
5292   ThreadId tid_main ;   5292   ThreadId tid_main ;
5293   long tmp ;   5293   long tmp ;
5294     5294  
5295   {   5295   {
5296   vgPlain_debugLog(1, "sched", "sched_init_phase1\n");   5296   vgPlain_debugLog(1, "sched", "sched_init_phase1\n");
5297   vgModuleLocal_sema_init(& the_BigLock);   5297   vgModuleLocal_sema_init(& the_BigLock);
5298   i = 0;   5298   i = 0;
5299   while (i < 500) {   5299   while (i < 500) {
5300     vgPlain_memset((void *)(& vgPlain_threads[i]), 0,   5300     vgPlain_memset((void *)(& vgPlain_threads[i]), 0,
5301                    (SizeT )sizeof(vgPlain_threads[i]));   5301                    (SizeT )sizeof(vgPlain_threads[i]));
5302     vgPlain_threads[i].sig_queue = (struct SigQueue *)((void *)0);   5302     vgPlain_threads[i].sig_queue = (struct SigQueue *)((void *)0);
5303     os_state_init(& vgPlain_threads[i]);   5303     os_state_init(& vgPlain_threads[i]);
5304     mostly_clear_thread_record((ThreadId )i);   5304     mostly_clear_thread_record((ThreadId )i);
5305     vgPlain_threads[i].status = (ThreadStatus )0;   5305     vgPlain_threads[i].status = (ThreadStatus )0;
5306     vgPlain_threads[i].client_stack_szB = (SizeT )0;   5306     vgPlain_threads[i].client_stack_szB = (SizeT )0;
5307     vgPlain_threads[i].client_stack_highest_word = (Addr )((void *)0);   5307     vgPlain_threads[i].client_stack_highest_word = (Addr )((void *)0);
5308     i ++;   5308     i ++;
5309   }   5309   }
5310   tid_main = vgPlain_alloc_ThreadState();   5310   tid_main = vgPlain_alloc_ThreadState();
5311   tmp = __builtin_expect((long )(! (! (tid_main == 1U))), 1L);   5311   tmp = __builtin_expect((long )(! (! (tid_main == 1U))), 1L);
5312   if (tmp) {   5312   if (tmp) {
5313     5313  
5314   } else {   5314   } else {
5315     vgPlain_assert_fail((Bool )1, (Char const   *)"tid_main == 1",   5315     vgPlain_assert_fail((Bool )1, (Char const   *)"tid_main == 1",
5316                         (Char const   *)"m_scheduler/scheduler.c", 566,   5316                         (Char const   *)"m_scheduler/scheduler.c", 566,
5317                         (Char const   *)"vgPlain_scheduler_init_phase1", "");   5317                         (Char const   *)"vgPlain_scheduler_init_phase1", "");
5318   }   5318   }
5319   return (tid_main);   5319   return (tid_main);
5320 }   5320 }
5321 }   5321 }
5322 void vgPlain_scheduler_init_phase2(ThreadId tid_main , Addr clstack_end ,   5322 void vgPlain_scheduler_init_phase2(ThreadId tid_main , Addr clstack_end ,
5323                                    SizeT clstack_size )   5323                                    SizeT clstack_size )
5324 {   5324 {
5325   long tmp ;   5325   long tmp ;
5326   long tmp___0 ;   5326   long tmp___0 ;
5327     5327  
5328   {   5328   {
5329   vgPlain_debugLog(1, "sched",   5329   vgPlain_debugLog(1, "sched",
5330                    "sched_init_phase2: tid_main=%d, cls_end=0x%lx, cls_sz=%ld\n",   5330                    "sched_init_phase2: tid_main=%d, cls_end=0x%lx, cls_sz=%ld\n",
5331                    tid_main, clstack_end, clstack_size);   5331                    tid_main, clstack_end, clstack_size);
5332   tmp = __builtin_expect((long )(! (! (0UL == ((clstack_end + 1UL) & ((1UL << 12) - 1UL))))),   5332   tmp = __builtin_expect((long )(! (! (0UL == ((clstack_end + 1UL) & ((1UL << 12) - 1UL))))),
5333                          1L);   5333                          1L);
5334   if (tmp) {   5334   if (tmp) {
5335     5335  
5336   } else {   5336   } else {
5337     vgPlain_assert_fail((Bool )1,   5337     vgPlain_assert_fail((Bool )1,
5338                         (Char const   *)"VG_IS_PAGE_ALIGNED(clstack_end+1)",   5338                         (Char const   *)"VG_IS_PAGE_ALIGNED(clstack_end+1)",
5339                         (Char const   *)"m_scheduler/scheduler.c", 586,   5339                         (Char const   *)"m_scheduler/scheduler.c", 586,
5340                         (Char const   *)"vgPlain_scheduler_init_phase2", "");   5340                         (Char const   *)"vgPlain_scheduler_init_phase2", "");
5341   }   5341   }
5342   tmp___0 = __builtin_expect((long )(! (! (0UL == (clstack_size & ((1UL << 12) - 1UL))))),   5342   tmp___0 = __builtin_expect((long )(! (! (0UL == (clstack_size & ((1UL << 12) - 1UL))))),
5343                              1L);   5343                              1L);
5344   if (tmp___0) {   5344   if (tmp___0) {
5345     5345  
5346   } else {   5346   } else {
5347     vgPlain_assert_fail((Bool )1,   5347     vgPlain_assert_fail((Bool )1,
5348                         (Char const   *)"VG_IS_PAGE_ALIGNED(clstack_size)",   5348                         (Char const   *)"VG_IS_PAGE_ALIGNED(clstack_size)",
5349                         (Char const   *)"m_scheduler/scheduler.c", 587,   5349                         (Char const   *)"m_scheduler/scheduler.c", 587,
5350                         (Char const   *)"vgPlain_scheduler_init_phase2", "");   5350                         (Char const   *)"vgPlain_scheduler_init_phase2", "");
5351   }   5351   }
5352   vgPlain_threads[tid_main].client_stack_highest_word = (clstack_end + 1UL) - (Addr )sizeof(UWord );   5352   vgPlain_threads[tid_main].client_stack_highest_word = (clstack_end + 1UL) - (Addr )sizeof(UWord );
5353   vgPlain_threads[tid_main].client_stack_szB = clstack_size;   5353   vgPlain_threads[tid_main].client_stack_szB = clstack_size;
5354   vgPlain_atfork((void (*)(ThreadId  ))((void *)0),   5354   vgPlain_atfork((void (*)(ThreadId  ))((void *)0),
5355                  (void (*)(ThreadId  ))((void *)0), & sched_fork_cleanup);   5355                  (void (*)(ThreadId  ))((void *)0), & sched_fork_cleanup);
5356   return;   5356   return;
5357 }   5357 }
5358 }   5358 }
5359 static void do_pre_run_checks(ThreadState *tst )   5359 static void do_pre_run_checks(ThreadState *tst )
5360 {   5360 {
5361   Addr a_vex ;   5361   Addr a_vex ;
5362   Addr a_vexsh1 ;   5362   Addr a_vexsh1 ;
5363   Addr a_vexsh2 ;   5363   Addr a_vexsh2 ;
5364   Addr a_spill ;   5364   Addr a_spill ;
5365   UInt sz_vex ;   5365   UInt sz_vex ;
5366   UInt sz_vexsh1 ;   5366   UInt sz_vexsh1 ;
5367   UInt sz_vexsh2 ;   5367   UInt sz_vexsh2 ;
5368   UInt sz_spill ;   5368   UInt sz_spill ;
5369   long tmp ;   5369   long tmp ;
5370   long tmp___0 ;   5370   long tmp___0 ;
5371   long tmp___1 ;   5371   long tmp___1 ;
5372   long tmp___2 ;   5372   long tmp___2 ;
5373   long tmp___3 ;   5373   long tmp___3 ;
5374   long tmp___4 ;   5374   long tmp___4 ;
5375   long tmp___5 ;   5375   long tmp___5 ;
5376   long tmp___6 ;   5376   long tmp___6 ;
5377   long tmp___7 ;   5377   long tmp___7 ;
5378   long tmp___8 ;   5378   long tmp___8 ;
5379   long tmp___9 ;   5379   long tmp___9 ;
5380   long tmp___10 ;   5380   long tmp___10 ;
5381   long tmp___11 ;   5381   long tmp___11 ;
5382   long tmp___12 ;   5382   long tmp___12 ;
5383     5383  
5384   {   5384   {
5385   a_vex = (Addr )(& tst->arch.vex);   5385   a_vex = (Addr )(& tst->arch.vex);
5386   a_vexsh1 = (Addr )(& tst->arch.vex_shadow1);   5386   a_vexsh1 = (Addr )(& tst->arch.vex_shadow1);
5387   a_vexsh2 = (Addr )(& tst->arch.vex_shadow2);   5387   a_vexsh2 = (Addr )(& tst->arch.vex_shadow2);
5388   a_spill = (Addr )(& tst->arch.vex_spill);   5388   a_spill = (Addr )(& tst->arch.vex_spill);
5389   sz_vex = sizeof(tst->arch.vex);   5389   sz_vex = sizeof(tst->arch.vex);
5390   sz_vexsh1 = sizeof(tst->arch.vex_shadow1);   5390   sz_vexsh1 = sizeof(tst->arch.vex_shadow1);
5391   sz_vexsh2 = sizeof(tst->arch.vex_shadow2);   5391   sz_vexsh2 = sizeof(tst->arch.vex_shadow2);
5392   sz_spill = sizeof(tst->arch.vex_spill);   5392   sz_spill = sizeof(tst->arch.vex_spill);
5393   tmp = __builtin_expect((long )(! (! (0UL == ((Addr )sz_vex & 15UL)))), 1L);   5393   tmp = __builtin_expect((long )(! (! (0UL == ((Addr )sz_vex & 15UL)))), 1L);
5394   if (tmp) {   5394   if (tmp) {
5395     5395  
5396   } else {   5396   } else {
5397     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_vex)",   5397     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_vex)",
5398                         (Char const   *)"m_scheduler/scheduler.c", 647,   5398                         (Char const   *)"m_scheduler/scheduler.c", 647,
5399                         (Char const   *)"do_pre_run_checks", "");   5399                         (Char const   *)"do_pre_run_checks", "");
5400   }   5400   }
5401   tmp___0 = __builtin_expect((long )(! (! (0UL == ((Addr )sz_vexsh1 & 15UL)))),   5401   tmp___0 = __builtin_expect((long )(! (! (0UL == ((Addr )sz_vexsh1 & 15UL)))),
5402                              1L);   5402                              1L);
5403   if (tmp___0) {   5403   if (tmp___0) {
5404     5404  
5405   } else {   5405   } else {
5406     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_vexsh1)",   5406     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_vexsh1)",
5407                         (Char const   *)"m_scheduler/scheduler.c", 648,   5407                         (Char const   *)"m_scheduler/scheduler.c", 648,
5408                         (Char const   *)"do_pre_run_checks", "");   5408                         (Char const   *)"do_pre_run_checks", "");
5409   }   5409   }
5410   tmp___1 = __builtin_expect((long )(! (! (0UL == ((Addr )sz_vexsh2 & 15UL)))),   5410   tmp___1 = __builtin_expect((long )(! (! (0UL == ((Addr )sz_vexsh2 & 15UL)))),
5411                              1L);   5411                              1L);
5412   if (tmp___1) {   5412   if (tmp___1) {
5413     5413  
5414   } else {   5414   } else {
5415     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_vexsh2)",   5415     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_vexsh2)",
5416                         (Char const   *)"m_scheduler/scheduler.c", 649,   5416                         (Char const   *)"m_scheduler/scheduler.c", 649,
5417                         (Char const   *)"do_pre_run_checks", "");   5417                         (Char const   *)"do_pre_run_checks", "");
5418   }   5418   }
5419   tmp___2 = __builtin_expect((long )(! (! (0UL == ((Addr )sz_spill & 15UL)))),   5419   tmp___2 = __builtin_expect((long )(! (! (0UL == ((Addr )sz_spill & 15UL)))),
5420                              1L);   5420                              1L);
5421   if (tmp___2) {   5421   if (tmp___2) {
5422     5422  
5423   } else {   5423   } else {
5424     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_spill)",   5424     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(sz_spill)",
5425                         (Char const   *)"m_scheduler/scheduler.c", 650,   5425                         (Char const   *)"m_scheduler/scheduler.c", 650,
5426                         (Char const   *)"do_pre_run_checks", "");   5426                         (Char const   *)"do_pre_run_checks", "");
5427   }   5427   }
5428   tmp___3 = __builtin_expect((long )(! (! (0UL == (a_vex & 15UL)))), 1L);   5428   tmp___3 = __builtin_expect((long )(! (! (0UL == (a_vex & 15UL)))), 1L);
5429   if (tmp___3) {   5429   if (tmp___3) {
5430     5430  
5431   } else {   5431   } else {
5432     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_vex)",   5432     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_vex)",
5433                         (Char const   *)"m_scheduler/scheduler.c", 652,   5433                         (Char const   *)"m_scheduler/scheduler.c", 652,
5434                         (Char const   *)"do_pre_run_checks", "");   5434                         (Char const   *)"do_pre_run_checks", "");
5435   }   5435   }
5436   tmp___4 = __builtin_expect((long )(! (! (0UL == (a_vexsh1 & 15UL)))), 1L);   5436   tmp___4 = __builtin_expect((long )(! (! (0UL == (a_vexsh1 & 15UL)))), 1L);
5437   if (tmp___4) {   5437   if (tmp___4) {
5438     5438  
5439   } else {   5439   } else {
5440     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_vexsh1)",   5440     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_vexsh1)",
5441                         (Char const   *)"m_scheduler/scheduler.c", 653,   5441                         (Char const   *)"m_scheduler/scheduler.c", 653,
5442                         (Char const   *)"do_pre_run_checks", "");   5442                         (Char const   *)"do_pre_run_checks", "");
5443   }   5443   }
5444   tmp___5 = __builtin_expect((long )(! (! (0UL == (a_vexsh2 & 15UL)))), 1L);   5444   tmp___5 = __builtin_expect((long )(! (! (0UL == (a_vexsh2 & 15UL)))), 1L);
5445   if (tmp___5) {   5445   if (tmp___5) {
5446     5446  
5447   } else {   5447   } else {
5448     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_vexsh2)",   5448     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_vexsh2)",
5449                         (Char const   *)"m_scheduler/scheduler.c", 654,   5449                         (Char const   *)"m_scheduler/scheduler.c", 654,
5450                         (Char const   *)"do_pre_run_checks", "");   5450                         (Char const   *)"do_pre_run_checks", "");
5451   }   5451   }
5452   tmp___6 = __builtin_expect((long )(! (! (0UL == (a_spill & 15UL)))), 1L);   5452   tmp___6 = __builtin_expect((long )(! (! (0UL == (a_spill & 15UL)))), 1L);
5453   if (tmp___6) {   5453   if (tmp___6) {
5454     5454  
5455   } else {   5455   } else {
5456     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_spill)",   5456     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_16_ALIGNED(a_spill)",
5457                         (Char const   *)"m_scheduler/scheduler.c", 655,   5457                         (Char const   *)"m_scheduler/scheduler.c", 655,
5458                         (Char const   *)"do_pre_run_checks", "");   5458                         (Char const   *)"do_pre_run_checks", "");
5459   }   5459   }
5460   tmp___7 = __builtin_expect((long )(! (! (sz_vex == sz_vexsh1))), 1L);   5460   tmp___7 = __builtin_expect((long )(! (! (sz_vex == sz_vexsh1))), 1L);
5461   if (tmp___7) {   5461   if (tmp___7) {
5462     5462  
5463   } else {   5463   } else {
5464     vgPlain_assert_fail((Bool )1, (Char const   *)"sz_vex == sz_vexsh1",   5464     vgPlain_assert_fail((Bool )1, (Char const   *)"sz_vex == sz_vexsh1",
5465                         (Char const   *)"m_scheduler/scheduler.c", 662,   5465                         (Char const   *)"m_scheduler/scheduler.c", 662,
5466                         (Char const   *)"do_pre_run_checks", "");   5466                         (Char const   *)"do_pre_run_checks", "");
5467   }   5467   }
5468   tmp___8 = __builtin_expect((long )(! (! (sz_vex == sz_vexsh2))), 1L);   5468   tmp___8 = __builtin_expect((long )(! (! (sz_vex == sz_vexsh2))), 1L);
5469   if (tmp___8) {   5469   if (tmp___8) {
5470     5470  
5471   } else {   5471   } else {
5472     vgPlain_assert_fail((Bool )1, (Char const   *)"sz_vex == sz_vexsh2",   5472     vgPlain_assert_fail((Bool )1, (Char const   *)"sz_vex == sz_vexsh2",
5473                         (Char const   *)"m_scheduler/scheduler.c", 663,   5473                         (Char const   *)"m_scheduler/scheduler.c", 663,
5474                         (Char const   *)"do_pre_run_checks", "");   5474                         (Char const   *)"do_pre_run_checks", "");
5475   }   5475   }
5476   tmp___9 = __builtin_expect((long )(! (! (a_vex + (Addr )sz_vex == a_vexsh1))),   5476   tmp___9 = __builtin_expect((long )(! (! (a_vex + (Addr )sz_vex == a_vexsh1))),
5477                              1L);   5477                              1L);
5478   if (tmp___9) {   5478   if (tmp___9) {
5479     5479  
5480   } else {   5480   } else {
5481     vgPlain_assert_fail((Bool )1,   5481     vgPlain_assert_fail((Bool )1,
5482                         (Char const   *)"a_vex + 1 * sz_vex == a_vexsh1",   5482                         (Char const   *)"a_vex + 1 * sz_vex == a_vexsh1",
5483                         (Char const   *)"m_scheduler/scheduler.c", 664,   5483                         (Char const   *)"m_scheduler/scheduler.c", 664,
5484                         (Char const   *)"do_pre_run_checks", "");   5484                         (Char const   *)"do_pre_run_checks", "");
5485   }   5485   }
5486   tmp___10 = __builtin_expect((long )(! (! (a_vex + (Addr )(2U * sz_vex) == a_vexsh2))),   5486   tmp___10 = __builtin_expect((long )(! (! (a_vex + (Addr )(2U * sz_vex) == a_vexsh2))),
5487                               1L);   5487                               1L);
5488   if (tmp___10) {   5488   if (tmp___10) {
5489     5489  
5490   } else {   5490   } else {
5491     vgPlain_assert_fail((Bool )1,   5491     vgPlain_assert_fail((Bool )1,
5492                         (Char const   *)"a_vex + 2 * sz_vex == a_vexsh2",   5492                         (Char const   *)"a_vex + 2 * sz_vex == a_vexsh2",
5493                         (Char const   *)"m_scheduler/scheduler.c", 665,   5493                         (Char const   *)"m_scheduler/scheduler.c", 665,
5494                         (Char const   *)"do_pre_run_checks", "");   5494                         (Char const   *)"do_pre_run_checks", "");
5495   }   5495   }
5496   tmp___11 = __builtin_expect((long )(! (! (sz_spill == 4096U))), 1L);   5496   tmp___11 = __builtin_expect((long )(! (! (sz_spill == 4096U))), 1L);
5497   if (tmp___11) {   5497   if (tmp___11) {
5498     5498  
5499   } else {   5499   } else {
5500     vgPlain_assert_fail((Bool )1,   5500     vgPlain_assert_fail((Bool )1,
5501                         (Char const   *)"sz_spill == LibVEX_N_SPILL_BYTES",   5501                         (Char const   *)"sz_spill == LibVEX_N_SPILL_BYTES",
5502                         (Char const   *)"m_scheduler/scheduler.c", 668,   5502                         (Char const   *)"m_scheduler/scheduler.c", 668,
5503                         (Char const   *)"do_pre_run_checks", "");   5503                         (Char const   *)"do_pre_run_checks", "");
5504   }   5504   }
5505   tmp___12 = __builtin_expect((long )(! (! (a_vex + (Addr )(3U * sz_vex) == a_spill))),   5505   tmp___12 = __builtin_expect((long )(! (! (a_vex + (Addr )(3U * sz_vex) == a_spill))),
5506                               1L);   5506                               1L);
5507   if (tmp___12) {   5507   if (tmp___12) {
5508     5508  
5509   } else {   5509   } else {
5510     vgPlain_assert_fail((Bool )1,   5510     vgPlain_assert_fail((Bool )1,
5511                         (Char const   *)"a_vex + 3 * sz_vex == a_spill",   5511                         (Char const   *)"a_vex + 3 * sz_vex == a_spill",
5512                         (Char const   *)"m_scheduler/scheduler.c", 669,   5512                         (Char const   *)"m_scheduler/scheduler.c", 669,
5513                         (Char const   *)"do_pre_run_checks", "");   5513                         (Char const   *)"do_pre_run_checks", "");
5514   }   5514   }
5515   return;   5515   return;
5516 }   5516 }
5517 }   5517 }
5518 void vgPlain_disable_vgdb_poll(void)   5518 void vgPlain_disable_vgdb_poll(void)
5519 {   5519 {
5520     5520  
5521     5521  
5522   {   5522   {
5523   vgdb_next_poll = 0xffffffffffffffffULL;   5523   vgdb_next_poll = 0xffffffffffffffffULL;
5524   return;   5524   return;
5525 }   5525 }
5526 }   5526 }
5527 void vgPlain_force_vgdb_poll(void)   5527 void vgPlain_force_vgdb_poll(void)
5528 {   5528 {
5529     5529  
5530     5530  
5531   {   5531   {
5532   vgdb_next_poll = 0ULL;   5532   vgdb_next_poll = 0ULL;
5533   return;   5533   return;
5534 }   5534 }
5535 }   5535 }
5536 extern int ( /* missing proto */  __builtin_setjmp)() ;   5536 extern int ( /* missing proto */  __builtin_setjmp)() ;
5537 static UInt run_thread_for_a_while(ThreadId tid )   5537 static UInt run_thread_for_a_while(ThreadId tid )
5538 {   5538 {
5539   Int volatile   jumped ;   5539   Int volatile   jumped ;
5540   ThreadState volatile   *tst ;   5540   ThreadState volatile   *tst ;
5541   UInt volatile   trc ;   5541   UInt volatile   trc ;
5542   Int volatile   dispatch_ctr_SAVED ;   5542   Int volatile   dispatch_ctr_SAVED ;
5543   Int volatile   done_this_time ;   5543   Int volatile   done_this_time ;
5544   Bool tmp ;   5544   Bool tmp ;
5545   int tmp___0 ;   5545   int tmp___0 ;
5546   long tmp___1 ;   5546   long tmp___1 ;
5547   Bool tmp___2 ;   5547   Bool tmp___2 ;
5548   int tmp___3 ;   5548   int tmp___3 ;
5549   long tmp___4 ;   5549   long tmp___4 ;
5550   Bool tmp___5 ;   5550   Bool tmp___5 ;
5551   int tmp___6 ;   5551   int tmp___6 ;
5552   long tmp___7 ;   5552   long tmp___7 ;
5553   ThreadState *tmp___8 ;   5553   ThreadState *tmp___8 ;
5554   vki_sigset_t m ;   5554   vki_sigset_t m ;
5555   Int i ;   5555   Int i ;
5556   Int err ;   5556   Int err ;
5557   Int tmp___9 ;   5557   Int tmp___9 ;
5558   long tmp___10 ;   5558   long tmp___10 ;
5559   Int tmp___11 ;   5559   Int tmp___11 ;
5560   long tmp___12 ;   5560   long tmp___12 ;
5561   ThreadState * volatile  _qq_tst ;   5561   ThreadState * volatile  _qq_tst ;
5562   ThreadState *tmp___13 ;   5562   ThreadState *tmp___13 ;
5563   int tmp___14 ;   5563   int tmp___14 ;
5564   long tmp___15 ;   5564   long tmp___15 ;
5565   int tmp___16 ;   5565   int tmp___16 ;
5566   UWord tmp___17 ;   5566   UWord tmp___17 ;
5567   long tmp___18 ;   5567   long tmp___18 ;
5568   long tmp___19 ;   5568   long tmp___19 ;
5569   long tmp___20 ;   5569   long tmp___20 ;
5570   long tmp___21 ;   5570   long tmp___21 ;
5571   Bool tmp___22 ;   5571   Bool tmp___22 ;
5572     5572  
5573   {   5573   {
5574   tst = (ThreadState volatile   *)((void *)0);   5574   tst = (ThreadState volatile   *)((void *)0);
5575   tmp = vgPlain_is_valid_tid(tid);   5575   tmp = vgPlain_is_valid_tid(tid);
5576   if (tmp) {   5576   if (tmp) {
5577     tmp___0 = 1;   5577     tmp___0 = 1;
5578   } else {   5578   } else {
5579     tmp___0 = 0;   5579     tmp___0 = 0;
5580   }   5580   }
5581   tmp___1 = __builtin_expect((long )tmp___0, 1L);   5581   tmp___1 = __builtin_expect((long )tmp___0, 1L);
5582   if (tmp___1) {   5582   if (tmp___1) {
5583     5583  
5584   } else {   5584   } else {
5585     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",   5585     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",
5586                         (Char const   *)"m_scheduler/scheduler.c", 736,   5586                         (Char const   *)"m_scheduler/scheduler.c", 736,
5587                         (Char const   *)"run_thread_for_a_while", "");   5587                         (Char const   *)"run_thread_for_a_while", "");
5588   }   5588   }
5589   tmp___2 = vgPlain_is_running_thread(tid);   5589   tmp___2 = vgPlain_is_running_thread(tid);
5590   if (tmp___2) {   5590   if (tmp___2) {
5591     tmp___3 = 1;   5591     tmp___3 = 1;
5592   } else {   5592   } else {
5593     tmp___3 = 0;   5593     tmp___3 = 0;
5594   }   5594   }
5595   tmp___4 = __builtin_expect((long )tmp___3, 1L);   5595   tmp___4 = __builtin_expect((long )tmp___3, 1L);
5596   if (tmp___4) {   5596   if (tmp___4) {
5597     5597  
5598   } else {   5598   } else {
5599     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",   5599     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",
5600                         (Char const   *)"m_scheduler/scheduler.c", 737,   5600                         (Char const   *)"m_scheduler/scheduler.c", 737,
5601                         (Char const   *)"run_thread_for_a_while", "");   5601                         (Char const   *)"run_thread_for_a_while", "");
5602   }   5602   }
5603   tmp___5 = vgPlain_is_exiting(tid);   5603   tmp___5 = vgPlain_is_exiting(tid);
5604   if (tmp___5) {   5604   if (tmp___5) {
5605     tmp___6 = 0;   5605     tmp___6 = 0;
5606   } else {   5606   } else {
5607     tmp___6 = 1;   5607     tmp___6 = 1;
5608   }   5608   }
5609   tmp___7 = __builtin_expect((long )tmp___6, 1L);   5609   tmp___7 = __builtin_expect((long )tmp___6, 1L);
5610   if (tmp___7) {   5610   if (tmp___7) {
5611     5611  
5612   } else {   5612   } else {
5613     vgPlain_assert_fail((Bool )1, (Char const   *)"!VG_(is_exiting)(tid)",   5613     vgPlain_assert_fail((Bool )1, (Char const   *)"!VG_(is_exiting)(tid)",
5614                         (Char const   *)"m_scheduler/scheduler.c", 738,   5614                         (Char const   *)"m_scheduler/scheduler.c", 738,
5615                         (Char const   *)"run_thread_for_a_while", "");   5615                         (Char const   *)"run_thread_for_a_while", "");
5616   }   5616   }
5617   tmp___8 = vgPlain_get_ThreadState(tid);   5617   tmp___8 = vgPlain_get_ThreadState(tid);
5618   tst = (ThreadState volatile   *)tmp___8;   5618   tst = (ThreadState volatile   *)tmp___8;
5619   do_pre_run_checks((ThreadState *)tst);   5619   do_pre_run_checks((ThreadState *)tst);
5620   trc = (UInt volatile   )0;   5620   trc = (UInt volatile   )0;
5621   dispatch_ctr_SAVED = (Int volatile   )vgPlain_dispatch_ctr;   5621   dispatch_ctr_SAVED = (Int volatile   )vgPlain_dispatch_ctr;
5622   while (1) {   5622   while (1) {
5623     if (vgPlain_tdict.track_start_client_code) {   5623     if (vgPlain_tdict.track_start_client_code) {
5624       (*(vgPlain_tdict.track_start_client_code))(tid, bbs_done);   5624       (*(vgPlain_tdict.track_start_client_code))(tid, bbs_done);
5625     } else {   5625     } else {
5626     5626  
5627     }   5627     }
5628     break;   5628     break;
5629   }   5629   }
5630   tmp___12 = __builtin_expect((long )(! (! ((int )vgPlain_in_generated_code == 0))),   5630   tmp___12 = __builtin_expect((long )(! (! ((int )vgPlain_in_generated_code == 0))),
5631                               1L);   5631                               1L);
5632   if (tmp___12) {   5632   if (tmp___12) {
5633     5633  
5634   } else {   5634   } else {
5635     vgPlain_assert_fail((Bool )1,   5635     vgPlain_assert_fail((Bool )1,
5636                         (Char const   *)"VG_(in_generated_code) == False",   5636                         (Char const   *)"VG_(in_generated_code) == False",
5637                         (Char const   *)"m_scheduler/scheduler.c", 780,   5637                         (Char const   *)"m_scheduler/scheduler.c", 780,
5638                         (Char const   *)"run_thread_for_a_while", "");   5638                         (Char const   *)"run_thread_for_a_while", "");
5639   }   5639   }
5640   vgPlain_in_generated_code = (Bool )1;   5640   vgPlain_in_generated_code = (Bool )1;
5641   while (1) {   5641   while (1) {
5642     tmp___13 = vgPlain_get_ThreadState(tid);   5642     tmp___13 = vgPlain_get_ThreadState(tid);
5643     _qq_tst = (ThreadState */* volatile  */)tmp___13;   5643     _qq_tst = (ThreadState */* volatile  */)tmp___13;
5644     tmp___14 = __builtin_setjmp(_qq_tst->sched_jmpbuf);   5644     tmp___14 = __builtin_setjmp(_qq_tst->sched_jmpbuf);
5645     jumped = (Int volatile   )tmp___14;   5645     jumped = (Int volatile   )tmp___14;
5646     if (jumped == (Int volatile   )0) {   5646     if (jumped == (Int volatile   )0) {
5647       tmp___15 = __builtin_expect((long )(! (! (! _qq_tst->sched_jmpbuf_valid))),   5647       tmp___15 = __builtin_expect((long )(! (! (! _qq_tst->sched_jmpbuf_valid))),
5648                                   1L);   5648                                   1L);
5649       if (tmp___15) {   5649       if (tmp___15) {
5650     5650  
5651       } else {   5651       } else {
5652         vgPlain_assert_fail((Bool )1,   5652         vgPlain_assert_fail((Bool )1,
5653                             (Char const   *)"!_qq_tst->sched_jmpbuf_valid",   5653                             (Char const   *)"!_qq_tst->sched_jmpbuf_valid",
5654                             (Char const   *)"m_scheduler/scheduler.c", 788,   5654                             (Char const   *)"m_scheduler/scheduler.c", 788,
5655                             (Char const   *)"run_thread_for_a_while", "");   5655                             (Char const   *)"run_thread_for_a_while", "");
5656       }   5656       }
5657       _qq_tst->sched_jmpbuf_valid = (Bool )1;   5657       _qq_tst->sched_jmpbuf_valid = (Bool )1;
5658       if ((int )vgPlain_clo_profile_flags > 0) {   5658       if ((int )vgPlain_clo_profile_flags > 0) {
5659         tmp___16 = 1;   5659         tmp___16 = 1;
5660       } else {   5660       } else {
5661         tmp___16 = 0;   5661         tmp___16 = 0;
5662       }   5662       }
5663       tmp___17 = vgPlain_run_innerloop((void *)(& tst->arch.vex),   5663       tmp___17 = vgPlain_run_innerloop((void *)(& tst->arch.vex),
5664                                        (UWord )tmp___16);   5664                                        (UWord )tmp___16);
5665       trc = (UInt volatile   )((UInt )tmp___17);   5665       trc = (UInt volatile   )((UInt )tmp___17);
5666     } else   5666     } else
5667     if (vgPlain_clo_trace_sched) {   5667     if (vgPlain_clo_trace_sched) {
5668       vgPlain_printf("SCHEDSETJMP(line %d) tid %d, jumped=%d\n", 788, tid,   5668       vgPlain_printf("SCHEDSETJMP(line %d) tid %d, jumped=%d\n", 788, tid,
5669                      jumped);   5669                      jumped);
5670     } else {   5670     } else {
5671     5671  
5672     }   5672     }
5673     tmp___18 = __builtin_expect((long )(! (! _qq_tst->sched_jmpbuf_valid)), 1L);   5673     tmp___18 = __builtin_expect((long )(! (! _qq_tst->sched_jmpbuf_valid)), 1L);
5674     if (tmp___18) {   5674     if (tmp___18) {
5675     5675  
5676     } else {   5676     } else {
5677       vgPlain_assert_fail((Bool )1,   5677       vgPlain_assert_fail((Bool )1,
5678                           (Char const   *)"_qq_tst->sched_jmpbuf_valid",   5678                           (Char const   *)"_qq_tst->sched_jmpbuf_valid",
5679                           (Char const   *)"m_scheduler/scheduler.c", 788,   5679                           (Char const   *)"m_scheduler/scheduler.c", 788,
5680                           (Char const   *)"run_thread_for_a_while", "");   5680                           (Char const   *)"run_thread_for_a_while", "");
5681     }   5681     }
5682     _qq_tst->sched_jmpbuf_valid = (Bool )0;   5682     _qq_tst->sched_jmpbuf_valid = (Bool )0;
5683     break;   5683     break;
5684   }   5684   }
5685   tmp___19 = __builtin_expect((long )(! (! ((int )vgPlain_in_generated_code == 1))),   5685   tmp___19 = __builtin_expect((long )(! (! ((int )vgPlain_in_generated_code == 1))),
5686                               1L);   5686                               1L);
5687   if (tmp___19) {   5687   if (tmp___19) {
5688     5688  
5689   } else {   5689   } else {
5690     vgPlain_assert_fail((Bool )1,   5690     vgPlain_assert_fail((Bool )1,
5691                         (Char const   *)"VG_(in_generated_code) == True",   5691                         (Char const   *)"VG_(in_generated_code) == True",
5692                         (Char const   *)"m_scheduler/scheduler.c", 790,   5692                         (Char const   *)"m_scheduler/scheduler.c", 790,
5693                         (Char const   *)"run_thread_for_a_while", "");   5693                         (Char const   *)"run_thread_for_a_while", "");
5694   }   5694   }
5695   vgPlain_in_generated_code = (Bool )0;   5695   vgPlain_in_generated_code = (Bool )0;
5696   if (jumped) {   5696   if (jumped) {
5697     tmp___20 = __builtin_expect((long )(! (! (trc == (UInt volatile   )0))), 1L);   5697     tmp___20 = __builtin_expect((long )(! (! (trc == (UInt volatile   )0))), 1L);
5698     if (tmp___20) {   5698     if (tmp___20) {
5699     5699  
5700     } else {   5700     } else {
5701       vgPlain_assert_fail((Bool )1, (Char const   *)"trc == 0",   5701       vgPlain_assert_fail((Bool )1, (Char const   *)"trc == 0",
5702                           (Char const   *)"m_scheduler/scheduler.c", 796,   5702                           (Char const   *)"m_scheduler/scheduler.c", 796,
5703                           (Char const   *)"run_thread_for_a_while", "");   5703                           (Char const   *)"run_thread_for_a_while", "");
5704     }   5704     }
5705     trc = (UInt volatile   )43;   5705     trc = (UInt volatile   )43;
5706     block_signals();   5706     block_signals();
5707   } else {   5707   } else {
5708     5708  
5709   }   5709   }
5710   done_this_time = (Int volatile   )((Int )dispatch_ctr_SAVED - (Int )vgPlain_dispatch_ctr);   5710   done_this_time = (Int volatile   )((Int )dispatch_ctr_SAVED - (Int )vgPlain_dispatch_ctr);
5711   tmp___21 = __builtin_expect((long )(! (! (done_this_time >= (Int volatile   )0))),   5711   tmp___21 = __builtin_expect((long )(! (! (done_this_time >= (Int volatile   )0))),
5712                               1L);   5712                               1L);
5713   if (tmp___21) {   5713   if (tmp___21) {
5714     5714  
5715   } else {   5715   } else {
5716     vgPlain_assert_fail((Bool )1, (Char const   *)"done_this_time >= 0",   5716     vgPlain_assert_fail((Bool )1, (Char const   *)"done_this_time >= 0",
5717                         (Char const   *)"m_scheduler/scheduler.c", 803,   5717                         (Char const   *)"m_scheduler/scheduler.c", 803,
5718                         (Char const   *)"run_thread_for_a_while", "");   5718                         (Char const   *)"run_thread_for_a_while", "");
5719   }   5719   }
5720   bbs_done += (ULong )done_this_time;   5720   bbs_done += (ULong )done_this_time;
5721   while (1) {   5721   while (1) {
5722     if (vgPlain_tdict.track_stop_client_code) {   5722     if (vgPlain_tdict.track_stop_client_code) {
5723       (*(vgPlain_tdict.track_stop_client_code))(tid, bbs_done);   5723       (*(vgPlain_tdict.track_stop_client_code))(tid, bbs_done);
5724     } else {   5724     } else {
5725     5725  
5726     }   5726     }
5727     break;   5727     break;
5728   }   5728   }
5729   if (bbs_done >= vgdb_next_poll) {   5729   if (bbs_done >= vgdb_next_poll) {
5730     if (vgPlain_clo_vgdb_poll) {   5730     if (vgPlain_clo_vgdb_poll) {
5731       vgdb_next_poll = bbs_done + (ULong )vgPlain_clo_vgdb_poll;   5731       vgdb_next_poll = bbs_done + (ULong )vgPlain_clo_vgdb_poll;
5732     } else {   5732     } else {
5733       vgdb_next_poll = 0xffffffffffffffffULL;   5733       vgdb_next_poll = 0xffffffffffffffffULL;
5734     }   5734     }
5735     tmp___22 = vgPlain_gdbserver_activity(tid);   5735     tmp___22 = vgPlain_gdbserver_activity(tid);
5736     if (tmp___22) {   5736     if (tmp___22) {
5737       vgPlain_gdbserver(tid);   5737       vgPlain_gdbserver(tid);
5738     } else {   5738     } else {
5739     5739  
5740     }   5740     }
5741   } else {   5741   } else {
5742     5742  
5743   }   5743   }
5744   return ((UInt )trc);   5744   return ((UInt )trc);
5745 }   5745 }
5746 }   5746 }
5747 static UInt run_noredir_translation(Addr hcode , ThreadId tid )   5747 static UInt run_noredir_translation(Addr hcode , ThreadId tid )
5748 {   5748 {
5749   Int volatile   jumped ;   5749   Int volatile   jumped ;
5750   ThreadState volatile   *tst ;   5750   ThreadState volatile   *tst ;
5751   UWord volatile   argblock[4] ;   5751   UWord volatile   argblock[4] ;
5752   UInt volatile   retval ;   5752   UInt volatile   retval ;
5753   Bool tmp ;   5753   Bool tmp ;
5754   int tmp___0 ;   5754   int tmp___0 ;
5755   long tmp___1 ;   5755   long tmp___1 ;
5756   Bool tmp___2 ;   5756   Bool tmp___2 ;
5757   int tmp___3 ;   5757   int tmp___3 ;
5758   long tmp___4 ;   5758   long tmp___4 ;
5759   Bool tmp___5 ;   5759   Bool tmp___5 ;
5760   int tmp___6 ;   5760   int tmp___6 ;
5761   long tmp___7 ;   5761   long tmp___7 ;
5762   ThreadState *tmp___8 ;   5762   ThreadState *tmp___8 ;
5763   long tmp___9 ;   5763   long tmp___9 ;
5764   ThreadState * volatile  _qq_tst ;   5764   ThreadState * volatile  _qq_tst ;
5765   ThreadState *tmp___10 ;   5765   ThreadState *tmp___10 ;
5766   int tmp___11 ;   5766   int tmp___11 ;
5767   long tmp___12 ;   5767   long tmp___12 ;
5768   long tmp___13 ;   5768   long tmp___13 ;
5769   long tmp___14 ;   5769   long tmp___14 ;
5770   long tmp___15 ;   5770   long tmp___15 ;
5771     5771  
5772   {   5772   {
5773   tmp = vgPlain_is_valid_tid(tid);   5773   tmp = vgPlain_is_valid_tid(tid);
5774   if (tmp) {   5774   if (tmp) {
5775     tmp___0 = 1;   5775     tmp___0 = 1;
5776   } else {   5776   } else {
5777     tmp___0 = 0;   5777     tmp___0 = 0;
5778   }   5778   }
5779   tmp___1 = __builtin_expect((long )tmp___0, 1L);   5779   tmp___1 = __builtin_expect((long )tmp___0, 1L);
5780   if (tmp___1) {   5780   if (tmp___1) {
5781     5781  
5782   } else {   5782   } else {
5783     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",   5783     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",
5784                         (Char const   *)"m_scheduler/scheduler.c", 833,   5784                         (Char const   *)"m_scheduler/scheduler.c", 833,
5785                         (Char const   *)"run_noredir_translation", "");   5785                         (Char const   *)"run_noredir_translation", "");
5786   }   5786   }
5787   tmp___2 = vgPlain_is_running_thread(tid);   5787   tmp___2 = vgPlain_is_running_thread(tid);
5788   if (tmp___2) {   5788   if (tmp___2) {
5789     tmp___3 = 1;   5789     tmp___3 = 1;
5790   } else {   5790   } else {
5791     tmp___3 = 0;   5791     tmp___3 = 0;
5792   }   5792   }
5793   tmp___4 = __builtin_expect((long )tmp___3, 1L);   5793   tmp___4 = __builtin_expect((long )tmp___3, 1L);
5794   if (tmp___4) {   5794   if (tmp___4) {
5795     5795  
5796   } else {   5796   } else {
5797     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",   5797     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",
5798                         (Char const   *)"m_scheduler/scheduler.c", 834,   5798                         (Char const   *)"m_scheduler/scheduler.c", 834,
5799                         (Char const   *)"run_noredir_translation", "");   5799                         (Char const   *)"run_noredir_translation", "");
5800   }   5800   }
5801   tmp___5 = vgPlain_is_exiting(tid);   5801   tmp___5 = vgPlain_is_exiting(tid);
5802   if (tmp___5) {   5802   if (tmp___5) {
5803     tmp___6 = 0;   5803     tmp___6 = 0;
5804   } else {   5804   } else {
5805     tmp___6 = 1;   5805     tmp___6 = 1;
5806   }   5806   }
5807   tmp___7 = __builtin_expect((long )tmp___6, 1L);   5807   tmp___7 = __builtin_expect((long )tmp___6, 1L);
5808   if (tmp___7) {   5808   if (tmp___7) {
5809     5809  
5810   } else {   5810   } else {
5811     vgPlain_assert_fail((Bool )1, (Char const   *)"!VG_(is_exiting)(tid)",   5811     vgPlain_assert_fail((Bool )1, (Char const   *)"!VG_(is_exiting)(tid)",
5812                         (Char const   *)"m_scheduler/scheduler.c", 835,   5812                         (Char const   *)"m_scheduler/scheduler.c", 835,
5813                         (Char const   *)"run_noredir_translation", "");   5813                         (Char const   *)"run_noredir_translation", "");
5814   }   5814   }
5815   tmp___8 = vgPlain_get_ThreadState(tid);   5815   tmp___8 = vgPlain_get_ThreadState(tid);
5816   tst = (ThreadState volatile   *)tmp___8;   5816   tst = (ThreadState volatile   *)tmp___8;
5817   do_pre_run_checks((ThreadState *)tst);   5817   do_pre_run_checks((ThreadState *)tst);
5818   argblock[0] = (UWord volatile   )hcode;   5818   argblock[0] = (UWord volatile   )hcode;
5819   argblock[1] = (UWord volatile   )((UWord )(& vgPlain_threads[tid].arch.vex));   5819   argblock[1] = (UWord volatile   )((UWord )(& vgPlain_threads[tid].arch.vex));
5820   argblock[2] = (UWord volatile   )0;   5820   argblock[2] = (UWord volatile   )0;
5821   argblock[3] = (UWord volatile   )0;   5821   argblock[3] = (UWord volatile   )0;
5822   while (1) {   5822   while (1) {
5823     if (vgPlain_tdict.track_start_client_code) {   5823     if (vgPlain_tdict.track_start_client_code) {
5824       (*(vgPlain_tdict.track_start_client_code))(tid, bbs_done);   5824       (*(vgPlain_tdict.track_start_client_code))(tid, bbs_done);
5825     } else {   5825     } else {
5826     5826  
5827     }   5827     }
5828     break;   5828     break;
5829   }   5829   }
5830   tmp___9 = __builtin_expect((long )(! (! ((int )vgPlain_in_generated_code == 0))),   5830   tmp___9 = __builtin_expect((long )(! (! ((int )vgPlain_in_generated_code == 0))),
5831                              1L);   5831                              1L);
5832   if (tmp___9) {   5832   if (tmp___9) {
5833     5833  
5834   } else {   5834   } else {
5835     vgPlain_assert_fail((Bool )1,   5835     vgPlain_assert_fail((Bool )1,
5836                         (Char const   *)"VG_(in_generated_code) == False",   5836                         (Char const   *)"VG_(in_generated_code) == False",
5837                         (Char const   *)"m_scheduler/scheduler.c", 868,   5837                         (Char const   *)"m_scheduler/scheduler.c", 868,
5838                         (Char const   *)"run_noredir_translation", "");   5838                         (Char const   *)"run_noredir_translation", "");
5839   }   5839   }
5840   vgPlain_in_generated_code = (Bool )1;   5840   vgPlain_in_generated_code = (Bool )1;
5841   while (1) {   5841   while (1) {
5842     tmp___10 = vgPlain_get_ThreadState(tid);   5842     tmp___10 = vgPlain_get_ThreadState(tid);
5843     _qq_tst = (ThreadState */* volatile  */)tmp___10;   5843     _qq_tst = (ThreadState */* volatile  */)tmp___10;
5844     tmp___11 = __builtin_setjmp(_qq_tst->sched_jmpbuf);   5844     tmp___11 = __builtin_setjmp(_qq_tst->sched_jmpbuf);
5845     jumped = (Int volatile   )tmp___11;   5845     jumped = (Int volatile   )tmp___11;
5846     if (jumped == (Int volatile   )0) {   5846     if (jumped == (Int volatile   )0) {
5847       tmp___12 = __builtin_expect((long )(! (! (! _qq_tst->sched_jmpbuf_valid))),   5847       tmp___12 = __builtin_expect((long )(! (! (! _qq_tst->sched_jmpbuf_valid))),
5848                                   1L);   5848                                   1L);
5849       if (tmp___12) {   5849       if (tmp___12) {
5850     5850  
5851       } else {   5851       } else {
5852         vgPlain_assert_fail((Bool )1,   5852         vgPlain_assert_fail((Bool )1,
5853                             (Char const   *)"!_qq_tst->sched_jmpbuf_valid",   5853                             (Char const   *)"!_qq_tst->sched_jmpbuf_valid",
5854                             (Char const   *)"m_scheduler/scheduler.c", 875,   5854                             (Char const   *)"m_scheduler/scheduler.c", 875,
5855                             (Char const   *)"run_noredir_translation", "");   5855                             (Char const   *)"run_noredir_translation", "");
5856       }   5856       }
5857       _qq_tst->sched_jmpbuf_valid = (Bool )1;   5857       _qq_tst->sched_jmpbuf_valid = (Bool )1;
5858       vgPlain_run_a_noredir_translation(& argblock[0]);   5858       vgPlain_run_a_noredir_translation(& argblock[0]);
5859     } else   5859     } else
5860     if (vgPlain_clo_trace_sched) {   5860     if (vgPlain_clo_trace_sched) {
5861       vgPlain_printf("SCHEDSETJMP(line %d) tid %d, jumped=%d\n", 875, tid,   5861       vgPlain_printf("SCHEDSETJMP(line %d) tid %d, jumped=%d\n", 875, tid,
5862                      jumped);   5862                      jumped);
5863     } else {   5863     } else {
5864     5864  
5865     }   5865     }
5866     tmp___13 = __builtin_expect((long )(! (! _qq_tst->sched_jmpbuf_valid)), 1L);   5866     tmp___13 = __builtin_expect((long )(! (! _qq_tst->sched_jmpbuf_valid)), 1L);
5867     if (tmp___13) {   5867     if (tmp___13) {
5868     5868  
5869     } else {   5869     } else {
5870       vgPlain_assert_fail((Bool )1,   5870       vgPlain_assert_fail((Bool )1,
5871                           (Char const   *)"_qq_tst->sched_jmpbuf_valid",   5871                           (Char const   *)"_qq_tst->sched_jmpbuf_valid",
5872                           (Char const   *)"m_scheduler/scheduler.c", 875,   5872                           (Char const   *)"m_scheduler/scheduler.c", 875,
5873                           (Char const   *)"run_noredir_translation", "");   5873                           (Char const   *)"run_noredir_translation", "");
5874     }   5874     }
5875     _qq_tst->sched_jmpbuf_valid = (Bool )0;   5875     _qq_tst->sched_jmpbuf_valid = (Bool )0;
5876     break;   5876     break;
5877   }   5877   }
5878   vgPlain_in_generated_code = (Bool )0;   5878   vgPlain_in_generated_code = (Bool )0;
5879   if (jumped) {   5879   if (jumped) {
5880     tmp___14 = __builtin_expect((long )(! (! (argblock[2] == (UWord volatile   )0))),   5880     tmp___14 = __builtin_expect((long )(! (! (argblock[2] == (UWord volatile   )0))),
5881                                 1L);   5881                                 1L);
5882     if (tmp___14) {   5882     if (tmp___14) {
5883     5883  
5884     } else {   5884     } else {
5885       vgPlain_assert_fail((Bool )1, (Char const   *)"argblock[2] == 0",   5885       vgPlain_assert_fail((Bool )1, (Char const   *)"argblock[2] == 0",
5886                           (Char const   *)"m_scheduler/scheduler.c", 882,   5886                           (Char const   *)"m_scheduler/scheduler.c", 882,
5887                           (Char const   *)"run_noredir_translation", "");   5887                           (Char const   *)"run_noredir_translation", "");
5888     }   5888     }
5889     tmp___15 = __builtin_expect((long )(! (! (argblock[3] == (UWord volatile   )0))),   5889     tmp___15 = __builtin_expect((long )(! (! (argblock[3] == (UWord volatile   )0))),
5890                                 1L);   5890                                 1L);
5891     if (tmp___15) {   5891     if (tmp___15) {
5892     5892  
5893     } else {   5893     } else {
5894       vgPlain_assert_fail((Bool )1, (Char const   *)"argblock[3] == 0",   5894       vgPlain_assert_fail((Bool )1, (Char const   *)"argblock[3] == 0",
5895                           (Char const   *)"m_scheduler/scheduler.c", 883,   5895                           (Char const   *)"m_scheduler/scheduler.c", 883,
5896                           (Char const   *)"run_noredir_translation", "");   5896                           (Char const   *)"run_noredir_translation", "");
5897     }   5897     }
5898     block_signals();   5898     block_signals();
5899     retval = (UInt volatile   )43;   5899     retval = (UInt volatile   )43;
5900   } else {   5900   } else {
5901     vgPlain_set_IP(tid, (Addr )argblock[2]);   5901     vgPlain_set_IP(tid, (Addr )argblock[2]);
5902     if (argblock[3] == argblock[1]) {   5902     if (argblock[3] == argblock[1]) {
5903       retval = (UInt volatile   )29;   5903       retval = (UInt volatile   )29;
5904     } else {   5904     } else {
5905       retval = (UInt volatile   )((UInt )argblock[3]);   5905       retval = (UInt volatile   )((UInt )argblock[3]);
5906     }   5906     }
5907   }   5907   }
5908   bbs_done ++;   5908   bbs_done ++;
5909   while (1) {   5909   while (1) {
5910     if (vgPlain_tdict.track_stop_client_code) {   5910     if (vgPlain_tdict.track_stop_client_code) {
5911       (*(vgPlain_tdict.track_stop_client_code))(tid, bbs_done);   5911       (*(vgPlain_tdict.track_stop_client_code))(tid, bbs_done);
5912     } else {   5912     } else {
5913     5913  
5914     }   5914     }
5915     break;   5915     break;
5916   }   5916   }
5917   return ((UInt )retval);   5917   return ((UInt )retval);
5918 }   5918 }
5919 }   5919 }
5920 ULong vgPlain_bbs_done(void)   5920 ULong vgPlain_bbs_done(void)
5921 {   5921 {
5922     5922  
5923     5923  
5924   {   5924   {
5925   return (bbs_done);   5925   return (bbs_done);
5926 }   5926 }
5927 }   5927 }
5928 static void handle_tt_miss(ThreadId tid )   5928 static void handle_tt_miss(ThreadId tid )
5929 {   5929 {
5930   Bool found ;   5930   Bool found ;
5931   Addr ip ;   5931   Addr ip ;
5932   Addr tmp ;   5932   Addr tmp ;
5933   long tmp___0 ;   5933   long tmp___0 ;
5934   Bool tmp___1 ;   5934   Bool tmp___1 ;
5935   long tmp___2 ;   5935   long tmp___2 ;
5936     5936  
5937   {   5937   {
5938   tmp = vgPlain_get_IP(tid);   5938   tmp = vgPlain_get_IP(tid);
5939   ip = tmp;   5939   ip = tmp;
5940   found = vgPlain_search_transtab((AddrH *)((void *)0), (Addr64 )ip, (Bool )1);   5940   found = vgPlain_search_transtab((AddrH *)((void *)0), (Addr64 )ip, (Bool )1);
5941   tmp___2 = __builtin_expect((long )(! (! (! found))), 0L);   5941   tmp___2 = __builtin_expect((long )(! (! (! found))), 0L);
5942   if (tmp___2) {   5942   if (tmp___2) {
5943     tmp___1 = vgPlain_translate(tid, (Addr64 )ip, (Bool )0, 0, bbs_done,   5943     tmp___1 = vgPlain_translate(tid, (Addr64 )ip, (Bool )0, 0, bbs_done,
5944                                 (Bool )1);   5944                                 (Bool )1);
5945     if (tmp___1) {   5945     if (tmp___1) {
5946       found = vgPlain_search_transtab((AddrH *)((void *)0), (Addr64 )ip,   5946       found = vgPlain_search_transtab((AddrH *)((void *)0), (Addr64 )ip,
5947                                       (Bool )1);   5947                                       (Bool )1);
5948       tmp___0 = __builtin_expect((long )(! (! found)), 1L);   5948       tmp___0 = __builtin_expect((long )(! (! found)), 1L);
5949       if (tmp___0) {   5949       if (tmp___0) {
5950     5950  
5951       } else {   5951       } else {
5952         vgPlain_assert_fail((Bool )1, (Char const   *)"found",   5952         vgPlain_assert_fail((Bool )1, (Char const   *)"found",
5953                             (Char const   *)"m_scheduler/scheduler.c", 927,   5953                             (Char const   *)"m_scheduler/scheduler.c", 927,
5954                             (Char const   *)"handle_tt_miss",   5954                             (Char const   *)"handle_tt_miss",
5955                             "VG_TRC_INNER_FASTMISS: missing tt_fast entry");   5955                             "VG_TRC_INNER_FASTMISS: missing tt_fast entry");
5956       }   5956       }
5957     } else {   5957     } else {
5958     5958  
5959     }   5959     }
5960   } else {   5960   } else {
5961     5961  
5962   }   5962   }
5963   return;   5963   return;
5964 }   5964 }
5965 }   5965 }
5966 static void handle_syscall(ThreadId tid , UInt trc )   5966 static void handle_syscall(ThreadId tid , UInt trc )
5967 {   5967 {
5968   ThreadState * volatile  tst ;   5968   ThreadState * volatile  tst ;
5969   ThreadState *tmp ;   5969   ThreadState *tmp ;
5970   Bool jumped ;   5970   Bool jumped ;
5971   ThreadState * volatile  _qq_tst ;   5971   ThreadState * volatile  _qq_tst ;
5972   ThreadState *tmp___0 ;   5972   ThreadState *tmp___0 ;
5973   int tmp___1 ;   5973   int tmp___1 ;
5974   long tmp___2 ;   5974   long tmp___2 ;
5975   long tmp___3 ;   5975   long tmp___3 ;
5976   Bool tmp___4 ;   5976   Bool tmp___4 ;
5977   Bool tmp___5 ;   5977   Bool tmp___5 ;
5978   int tmp___6 ;   5978   int tmp___6 ;
5979   long tmp___7 ;   5979   long tmp___7 ;
5980     5980  
5981   {   5981   {
5982   tmp = vgPlain_get_ThreadState(tid);   5982   tmp = vgPlain_get_ThreadState(tid);
5983   tst = (ThreadState */* volatile  */)tmp;   5983   tst = (ThreadState */* volatile  */)tmp;
5984   if (vgPlain_clo_sanity_level >= 3) {   5984   if (vgPlain_clo_sanity_level >= 3) {
5985     vgPlain_am_do_sync_check("(BEFORE SYSCALL)", "m_scheduler/scheduler.c", 950);   5985     vgPlain_am_do_sync_check("(BEFORE SYSCALL)", "m_scheduler/scheduler.c", 950);
5986   } else {   5986   } else {
5987     5987  
5988   }   5988   }
5989   while (1) {   5989   while (1) {
5990     tmp___0 = vgPlain_get_ThreadState(tid);   5990     tmp___0 = vgPlain_get_ThreadState(tid);
5991     _qq_tst = (ThreadState */* volatile  */)tmp___0;   5991     _qq_tst = (ThreadState */* volatile  */)tmp___0;
5992     tmp___1 = __builtin_setjmp(_qq_tst->sched_jmpbuf);   5992     tmp___1 = __builtin_setjmp(_qq_tst->sched_jmpbuf);
5993     jumped = (Bool )tmp___1;   5993     jumped = (Bool )tmp___1;
5994     if ((int )jumped == 0) {   5994     if ((int )jumped == 0) {
5995       tmp___2 = __builtin_expect((long )(! (! (! _qq_tst->sched_jmpbuf_valid))),   5995       tmp___2 = __builtin_expect((long )(! (! (! _qq_tst->sched_jmpbuf_valid))),
5996                                  1L);   5996                                  1L);
5997       if (tmp___2) {   5997       if (tmp___2) {
5998     5998  
5999       } else {   5999       } else {
6000         vgPlain_assert_fail((Bool )1,   6000         vgPlain_assert_fail((Bool )1,
6001                             (Char const   *)"!_qq_tst->sched_jmpbuf_valid",   6001                             (Char const   *)"!_qq_tst->sched_jmpbuf_valid",
6002                             (Char const   *)"m_scheduler/scheduler.c", 952,   6002                             (Char const   *)"m_scheduler/scheduler.c", 952,
6003                             (Char const   *)"handle_syscall", "");   6003                             (Char const   *)"handle_syscall", "");
6004       }   6004       }
6005       _qq_tst->sched_jmpbuf_valid = (Bool )1;   6005       _qq_tst->sched_jmpbuf_valid = (Bool )1;
6006       vgPlain_client_syscall(tid, trc);   6006       vgPlain_client_syscall(tid, trc);
6007     } else   6007     } else
6008     if (vgPlain_clo_trace_sched) {   6008     if (vgPlain_clo_trace_sched) {
6009       vgPlain_printf("SCHEDSETJMP(line %d) tid %d, jumped=%d\n", 952, tid,   6009       vgPlain_printf("SCHEDSETJMP(line %d) tid %d, jumped=%d\n", 952, tid,
6010                      (int )jumped);   6010                      (int )jumped);
6011     } else {   6011     } else {
6012     6012  
6013     }   6013     }
6014     tmp___3 = __builtin_expect((long )(! (! _qq_tst->sched_jmpbuf_valid)), 1L);   6014     tmp___3 = __builtin_expect((long )(! (! _qq_tst->sched_jmpbuf_valid)), 1L);
6015     if (tmp___3) {   6015     if (tmp___3) {
6016     6016  
6017     } else {   6017     } else {
6018       vgPlain_assert_fail((Bool )1,   6018       vgPlain_assert_fail((Bool )1,
6019                           (Char const   *)"_qq_tst->sched_jmpbuf_valid",   6019                           (Char const   *)"_qq_tst->sched_jmpbuf_valid",
6020                           (Char const   *)"m_scheduler/scheduler.c", 952,   6020                           (Char const   *)"m_scheduler/scheduler.c", 952,
6021                           (Char const   *)"handle_syscall", "");   6021                           (Char const   *)"handle_syscall", "");
6022     }   6022     }
6023     _qq_tst->sched_jmpbuf_valid = (Bool )0;   6023     _qq_tst->sched_jmpbuf_valid = (Bool )0;
6024     break;   6024     break;
6025   }   6025   }
6026   if (vgPlain_clo_sanity_level >= 3) {   6026   if (vgPlain_clo_sanity_level >= 3) {
6027     vgPlain_am_do_sync_check("(AFTER SYSCALL)", "m_scheduler/scheduler.c", 955);   6027     vgPlain_am_do_sync_check("(AFTER SYSCALL)", "m_scheduler/scheduler.c", 955);
6028   } else {   6028   } else {
6029     6029  
6030   }   6030   }
6031   tmp___4 = vgPlain_is_running_thread(tid);   6031   tmp___4 = vgPlain_is_running_thread(tid);
6032   if (tmp___4) {   6032   if (tmp___4) {
6033     6033  
6034   } else {   6034   } else {
6035     vgPlain_printf("tid %d not running; VG_(running_tid)=%d, tid %d status %d\n",   6035     vgPlain_printf("tid %d not running; VG_(running_tid)=%d, tid %d status %d\n",
6036                    tid, vgPlain_running_tid, tid, (unsigned int )tst->status);   6036                    tid, vgPlain_running_tid, tid, (unsigned int )tst->status);
6037   }   6037   }
6038   tmp___5 = vgPlain_is_running_thread(tid);   6038   tmp___5 = vgPlain_is_running_thread(tid);
6039   if (tmp___5) {   6039   if (tmp___5) {
6040     tmp___6 = 1;   6040     tmp___6 = 1;
6041   } else {   6041   } else {
6042     tmp___6 = 0;   6042     tmp___6 = 0;
6043   }   6043   }
6044   tmp___7 = __builtin_expect((long )tmp___6, 1L);   6044   tmp___7 = __builtin_expect((long )tmp___6, 1L);
6045   if (tmp___7) {   6045   if (tmp___7) {
6046     6046  
6047   } else {   6047   } else {
6048     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",   6048     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",
6049                         (Char const   *)"m_scheduler/scheduler.c", 960,   6049                         (Char const   *)"m_scheduler/scheduler.c", 960,
6050                         (Char const   *)"handle_syscall", "");   6050                         (Char const   *)"handle_syscall", "");
6051   }   6051   }
6052   if (jumped) {   6052   if (jumped) {
6053     block_signals();   6053     block_signals();
6054     vgPlain_poll_signals(tid);   6054     vgPlain_poll_signals(tid);
6055   } else {   6055   } else {
6056     6056  
6057   }   6057   }
6058   return;   6058   return;
6059 }   6059 }
6060 }   6060 }
6061 static UInt handle_noredir_jump(ThreadId tid )   6061 static UInt handle_noredir_jump(ThreadId tid )
6062 {   6062 {
6063   AddrH hcode ;   6063   AddrH hcode ;
6064   Addr ip ;   6064   Addr ip ;
6065   Addr tmp ;   6065   Addr tmp ;
6066   Bool found ;   6066   Bool found ;
6067   Bool tmp___0 ;   6067   Bool tmp___0 ;
6068   long tmp___1 ;   6068   long tmp___1 ;
6069   Bool tmp___2 ;   6069   Bool tmp___2 ;
6070   long tmp___3 ;   6070   long tmp___3 ;
6071   long tmp___4 ;   6071   long tmp___4 ;
6072   UInt tmp___5 ;   6072   UInt tmp___5 ;
6073     6073  
6074   {   6074   {
6075   hcode = (AddrH )0;   6075   hcode = (AddrH )0;
6076   tmp = vgPlain_get_IP(tid);   6076   tmp = vgPlain_get_IP(tid);
6077   ip = tmp;   6077   ip = tmp;
6078   tmp___0 = vgPlain_search_unredir_transtab(& hcode, (Addr64 )ip);   6078   tmp___0 = vgPlain_search_unredir_transtab(& hcode, (Addr64 )ip);
6079   found = tmp___0;   6079   found = tmp___0;
6080   if (! found) {   6080   if (! found) {
6081     tmp___2 = vgPlain_translate(tid, (Addr64 )ip, (Bool )0, 0, bbs_done,   6081     tmp___2 = vgPlain_translate(tid, (Addr64 )ip, (Bool )0, 0, bbs_done,
6082                                 (Bool )0);   6082                                 (Bool )0);
6083     if (tmp___2) {   6083     if (tmp___2) {
6084       found = vgPlain_search_unredir_transtab(& hcode, (Addr64 )ip);   6084       found = vgPlain_search_unredir_transtab(& hcode, (Addr64 )ip);
6085       tmp___1 = __builtin_expect((long )(! (! found)), 1L);   6085       tmp___1 = __builtin_expect((long )(! (! found)), 1L);
6086       if (tmp___1) {   6086       if (tmp___1) {
6087     6087  
6088       } else {   6088       } else {
6089         vgPlain_assert_fail((Bool )1, (Char const   *)"found",   6089         vgPlain_assert_fail((Bool )1, (Char const   *)"found",
6090                             (Char const   *)"m_scheduler/scheduler.c", 983,   6090                             (Char const   *)"m_scheduler/scheduler.c", 983,
6091                             (Char const   *)"handle_noredir_jump",   6091                             (Char const   *)"handle_noredir_jump",
6092                             "unredir translation missing after creation?!");   6092                             "unredir translation missing after creation?!");
6093       }   6093       }
6094     } else {   6094     } else {
6095       return ((UInt )29);   6095       return ((UInt )29);
6096     }   6096     }
6097   } else {   6097   } else {
6098     6098  
6099   }   6099   }
6100   tmp___3 = __builtin_expect((long )(! (! found)), 1L);   6100   tmp___3 = __builtin_expect((long )(! (! found)), 1L);
6101   if (tmp___3) {   6101   if (tmp___3) {
6102     6102  
6103   } else {   6103   } else {
6104     vgPlain_assert_fail((Bool )1, (Char const   *)"found",   6104     vgPlain_assert_fail((Bool )1, (Char const   *)"found",
6105                         (Char const   *)"m_scheduler/scheduler.c", 996,   6105                         (Char const   *)"m_scheduler/scheduler.c", 996,
6106                         (Char const   *)"handle_noredir_jump", "");   6106                         (Char const   *)"handle_noredir_jump", "");
6107   }   6107   }
6108   tmp___4 = __builtin_expect((long )(! (! (hcode != 0UL))), 1L);   6108   tmp___4 = __builtin_expect((long )(! (! (hcode != 0UL))), 1L);
6109   if (tmp___4) {   6109   if (tmp___4) {
6110     6110  
6111   } else {   6111   } else {
6112     vgPlain_assert_fail((Bool )1, (Char const   *)"hcode != 0",   6112     vgPlain_assert_fail((Bool )1, (Char const   *)"hcode != 0",
6113                         (Char const   *)"m_scheduler/scheduler.c", 997,   6113                         (Char const   *)"m_scheduler/scheduler.c", 997,
6114                         (Char const   *)"handle_noredir_jump", "");   6114                         (Char const   *)"handle_noredir_jump", "");
6115   }   6115   }
6116   tmp___5 = run_noredir_translation(hcode, tid);   6116   tmp___5 = run_noredir_translation(hcode, tid);
6117   return (tmp___5);   6117   return (tmp___5);
6118 }   6118 }
6119 }   6119 }
6120 VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;   6120 VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;
6121 static Bool vgdb_startup_action_done  =    (Bool )0;   6121 static Bool vgdb_startup_action_done  =    (Bool )0;
6122 static Int counts[10]  ;   6122 static Int counts[10]  ;
6123 VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;   6123 VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;
6124 static Bool counts_initted  =    (Bool )0;   6124 static Bool counts_initted  =    (Bool )0;
6125 VgSchedReturnCode vgPlain_scheduler(ThreadId tid )   6125 VgSchedReturnCode vgPlain_scheduler(ThreadId tid )
6126 {   6126 {
6127   UInt trc ;   6127   UInt trc ;
6128   ThreadState *tst ;   6128   ThreadState *tst ;
6129   ThreadState *tmp ;   6129   ThreadState *tmp ;
6130   long tmp___0 ;   6130   long tmp___0 ;
6131   long tmp___1 ;   6131   long tmp___1 ;
6132   Bool tmp___2 ;   6132   Bool tmp___2 ;
6133   int tmp___3 ;   6133   int tmp___3 ;
6134   long tmp___4 ;   6134   long tmp___4 ;
6135   Bool tmp___5 ;   6135   Bool tmp___5 ;
6136   long tmp___6 ;   6136   long tmp___6 ;
6137   Int tmp___7 ;   6137   Int tmp___7 ;
6138   int tmp___8 ;   6138   int tmp___8 ;
6139   long tmp___9 ;   6139   long tmp___9 ;
6140   Char buf[50] ;   6140   Char buf[50] ;
6141   HChar *tmp___10 ;   6141   HChar *tmp___10 ;
6142   long tmp___11 ;   6142   long tmp___11 ;
6143   long tmp___12 ;   6143   long tmp___12 ;
6144   long tmp___13 ;   6144   long tmp___13 ;
6145   VexEmWarn ew ;   6145   VexEmWarn ew ;
6146   HChar *what ;   6146   HChar *what ;
6147   Bool show ;   6147   Bool show ;
6148   Int q ;   6148   Int q ;
6149   HChar *tmp___14 ;   6149   HChar *tmp___14 ;
6150   Int tmp___15 ;   6150   Int tmp___15 ;
6151   VexEmWarn ew___0 ;   6151   VexEmWarn ew___0 ;
6152   HChar *what___0 ;   6152   HChar *what___0 ;
6153   HChar *tmp___16 ;   6153   HChar *tmp___16 ;
6154   Addr tmp___17 ;   6154   Addr tmp___17 ;
6155   Addr tmp___18 ;   6155   Addr tmp___18 ;
6156   long tmp___19 ;   6156   long tmp___19 ;
6157   long tmp___20 ;   6157   long tmp___20 ;
6158   long tmp___21 ;   6158   long tmp___21 ;
6159   Bool tmp___22 ;   6159   Bool tmp___22 ;
6160   Bool tmp___23 ;   6160   Bool tmp___23 ;
6161   int tmp___24 ;   6161   int tmp___24 ;
6162   long tmp___25 ;   6162   long tmp___25 ;
6163     6163  
6164   {   6164   {
6165   tmp = vgPlain_get_ThreadState(tid);   6165   tmp = vgPlain_get_ThreadState(tid);
6166   tst = tmp;   6166   tst = tmp;
6167   if (vgPlain_clo_trace_sched) {   6167   if (vgPlain_clo_trace_sched) {
6168     print_sched_event(tid, (Char *)"entering VG_(scheduler)");   6168     print_sched_event(tid, (Char *)"entering VG_(scheduler)");
6169   } else {   6169   } else {
6170     6170  
6171   }   6171   }
6172   if (! vgdb_startup_action_done) {   6172   if (! vgdb_startup_action_done) {
6173     tmp___0 = __builtin_expect((long )(! (! (tid == 1U))), 1L);   6173     tmp___0 = __builtin_expect((long )(! (! (tid == 1U))), 1L);
6174     if (tmp___0) {   6174     if (tmp___0) {
6175     6175  
6176     } else {   6176     } else {
6177       vgPlain_assert_fail((Bool )1, (Char const   *)"tid == 1",   6177       vgPlain_assert_fail((Bool )1, (Char const   *)"tid == 1",
6178                           (Char const   *)"m_scheduler/scheduler.c", 1045,   6178                           (Char const   *)"m_scheduler/scheduler.c", 1045,
6179                           (Char const   *)"vgPlain_scheduler", "");   6179                           (Char const   *)"vgPlain_scheduler", "");
6180     }   6180     }
6181     vgdb_startup_action_done = (Bool )1;   6181     vgdb_startup_action_done = (Bool )1;
6182     if ((unsigned int )vgPlain_clo_vgdb != 0U) {   6182     if ((unsigned int )vgPlain_clo_vgdb != 0U) {
6183       if (vgPlain_clo_vgdb_poll) {   6183       if (vgPlain_clo_vgdb_poll) {
6184         vgPlain_force_vgdb_poll();   6184         vgPlain_force_vgdb_poll();
6185       } else {   6185       } else {
6186         vgPlain_disable_vgdb_poll();   6186         vgPlain_disable_vgdb_poll();
6187       }   6187       }
6188       tmp___1 = __builtin_expect((long )(! (! (vgPlain_dyn_vgdb_error == vgPlain_clo_vgdb_error))),   6188       tmp___1 = __builtin_expect((long )(! (! (vgPlain_dyn_vgdb_error == vgPlain_clo_vgdb_error))),
6189                                  1L);   6189                                  1L);
6190       if (tmp___1) {   6190       if (tmp___1) {
6191     6191  
6192       } else {   6192       } else {
6193         vgPlain_assert_fail((Bool )1,   6193         vgPlain_assert_fail((Bool )1,
6194                             (Char const   *)"VG_(dyn_vgdb_error) == VG_(clo_vgdb_error)",   6194                             (Char const   *)"VG_(dyn_vgdb_error) == VG_(clo_vgdb_error)",
6195                             (Char const   *)"m_scheduler/scheduler.c", 1056,   6195                             (Char const   *)"m_scheduler/scheduler.c", 1056,
6196                             (Char const   *)"vgPlain_scheduler", "");   6196                             (Char const   *)"vgPlain_scheduler", "");
6197       }   6197       }
6198       vgPlain_gdbserver_prerun_action((ThreadId )1);   6198       vgPlain_gdbserver_prerun_action((ThreadId )1);
6199     } else {   6199     } else {
6200       vgPlain_disable_vgdb_poll();   6200       vgPlain_disable_vgdb_poll();
6201     }   6201     }
6202   } else {   6202   } else {
6203     6203  
6204   }   6204   }
6205   block_signals();   6205   block_signals();
6206   tmp___2 = vgPlain_is_running_thread(tid);   6206   tmp___2 = vgPlain_is_running_thread(tid);
6207   if (tmp___2) {   6207   if (tmp___2) {
6208     tmp___3 = 1;   6208     tmp___3 = 1;
6209   } else {   6209   } else {
6210     tmp___3 = 0;   6210     tmp___3 = 0;
6211   }   6211   }
6212   tmp___4 = __builtin_expect((long )tmp___3, 1L);   6212   tmp___4 = __builtin_expect((long )tmp___3, 1L);
6213   if (tmp___4) {   6213   if (tmp___4) {
6214     6214  
6215   } else {   6215   } else {
6216     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",   6216     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",
6217                         (Char const   *)"m_scheduler/scheduler.c", 1069,   6217                         (Char const   *)"m_scheduler/scheduler.c", 1069,
6218                         (Char const   *)"vgPlain_scheduler", "");   6218                         (Char const   *)"vgPlain_scheduler", "");
6219   }   6219   }
6220   vgPlain_dispatch_ctr = (UInt )100001;   6220   vgPlain_dispatch_ctr = (UInt )100001;
6221   while (1) {   6221   while (1) {
6222     tmp___22 = vgPlain_is_exiting(tid);   6222     tmp___22 = vgPlain_is_exiting(tid);
6223     if (tmp___22) {   6223     if (tmp___22) {
6224       break;   6224       break;
6225     } else {   6225     } else {
6226     6226  
6227     }   6227     }
6228     if (vgPlain_dispatch_ctr == 1U) {   6228     if (vgPlain_dispatch_ctr == 1U) {
6229       vgPlain_release_BigLock(tid, (ThreadStatus )4,   6229       vgPlain_release_BigLock(tid, (ThreadStatus )4,
6230                               (HChar *)"VG_(scheduler):timeslice");   6230                               (HChar *)"VG_(scheduler):timeslice");
6231       vgPlain_acquire_BigLock(tid, (HChar *)"VG_(scheduler):timeslice");   6231       vgPlain_acquire_BigLock(tid, (HChar *)"VG_(scheduler):timeslice");
6232       scheduler_sanity(tid);   6232       scheduler_sanity(tid);
6233       vgPlain_sanity_check_general((Bool )0);   6233       vgPlain_sanity_check_general((Bool )0);
6234       vgPlain_poll_signals(tid);   6234       vgPlain_poll_signals(tid);
6235       tmp___5 = vgPlain_is_exiting(tid);   6235       tmp___5 = vgPlain_is_exiting(tid);
6236       if (tmp___5) {   6236       if (tmp___5) {
6237         break;   6237         break;
6238       } else {   6238       } else {
6239     6239  
6240       }   6240       }
6241       n_scheduling_events_MAJOR ++;   6241       n_scheduling_events_MAJOR ++;
6242       vgPlain_dispatch_ctr = (UInt )100001;   6242       vgPlain_dispatch_ctr = (UInt )100001;
6243       tmp___6 = __builtin_expect((long )(! (! (tst->tid == tid))), 1L);   6243       tmp___6 = __builtin_expect((long )(! (! (tst->tid == tid))), 1L);
6244       if (tmp___6) {   6244       if (tmp___6) {
6245     6245  
6246       } else {   6246       } else {
6247         vgPlain_assert_fail((Bool )1, (Char const   *)"tst->tid == tid",   6247         vgPlain_assert_fail((Bool )1, (Char const   *)"tst->tid == tid",
6248                             (Char const   *)"m_scheduler/scheduler.c", 1147,   6248                             (Char const   *)"m_scheduler/scheduler.c", 1147,
6249                             (Char const   *)"vgPlain_scheduler", "");   6249                             (Char const   *)"vgPlain_scheduler", "");
6250       }   6250       }
6251       tmp___7 = vgPlain_gettid();   6251       tmp___7 = vgPlain_gettid();
6252       if (tst->os_state.lwpid == tmp___7) {   6252       if (tst->os_state.lwpid == tmp___7) {
6253         tmp___8 = 1;   6253         tmp___8 = 1;
6254       } else {   6254       } else {
6255         tmp___8 = 0;   6255         tmp___8 = 0;
6256       }   6256       }
6257       tmp___9 = __builtin_expect((long )tmp___8, 1L);   6257       tmp___9 = __builtin_expect((long )tmp___8, 1L);
6258       if (tmp___9) {   6258       if (tmp___9) {
6259     6259  
6260       } else {   6260       } else {
6261         vgPlain_assert_fail((Bool )1,   6261         vgPlain_assert_fail((Bool )1,
6262                             (Char const   *)"tst->os_state.lwpid == VG_(gettid)()",   6262                             (Char const   *)"tst->os_state.lwpid == VG_(gettid)()",
6263                             (Char const   *)"m_scheduler/scheduler.c", 1148,   6263                             (Char const   *)"m_scheduler/scheduler.c", 1148,
6264                             (Char const   *)"vgPlain_scheduler", "");   6264                             (Char const   *)"vgPlain_scheduler", "");
6265       }   6265       }
6266     } else {   6266     } else {
6267     6267  
6268     }   6268     }
6269     n_scheduling_events_MINOR ++;   6269     n_scheduling_events_MINOR ++;
6270     trc = run_thread_for_a_while(tid);   6270     trc = run_thread_for_a_while(tid);
6271     if (vgPlain_clo_trace_sched) {   6271     if (vgPlain_clo_trace_sched) {
6272       if (vgPlain_clo_verbosity > 2) {   6272       if (vgPlain_clo_verbosity > 2) {
6273         tmp___10 = name_of_sched_event(trc);   6273         tmp___10 = name_of_sched_event(trc);
6274         vgPlain_sprintf(buf, "TRC: %s", tmp___10);   6274         vgPlain_sprintf(buf, "TRC: %s", tmp___10);
6275         print_sched_event(tid, buf);   6275         print_sched_event(tid, buf);
6276       } else {   6276       } else {
6277     6277  
6278       }   6278       }
6279     } else {   6279     } else {
6280     6280  
6281     }   6281     }
6282     if (trc == 81U) {   6282     if (trc == 81U) {
6283       trc = handle_noredir_jump(tid);   6283       trc = handle_noredir_jump(tid);
6284       tmp___11 = __builtin_expect((long )(! (! (trc != 81U))), 1L);   6284       tmp___11 = __builtin_expect((long )(! (! (trc != 81U))), 1L);
6285       if (tmp___11) {   6285       if (tmp___11) {
6286     6286  
6287       } else {   6287       } else {
6288         vgPlain_assert_fail((Bool )1,   6288         vgPlain_assert_fail((Bool )1,
6289                             (Char const   *)"trc != VEX_TRC_JMP_NOREDIR",   6289                             (Char const   *)"trc != VEX_TRC_JMP_NOREDIR",
6290                             (Char const   *)"m_scheduler/scheduler.c", 1175,   6290                             (Char const   *)"m_scheduler/scheduler.c", 1175,
6291                             (Char const   *)"vgPlain_scheduler", "");   6291                             (Char const   *)"vgPlain_scheduler", "");
6292       }   6292       }
6293     } else {   6293     } else {
6294     6294  
6295     }   6295     }
6296     switch (trc) {   6296     switch (trc) {
6297     case 29U:   6297     case 29U:
6298     break;   6298     break;
6299     case 37U:   6299     case 37U:
6300     tmp___12 = __builtin_expect((long )(! (! (vgPlain_dispatch_ctr > 1U))), 1L);   6300     tmp___12 = __builtin_expect((long )(! (! (vgPlain_dispatch_ctr > 1U))), 1L);
6301     if (tmp___12) {   6301     if (tmp___12) {
6302     6302  
6303     } else {   6303     } else {
6304       vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(dispatch_ctr) > 1",   6304       vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(dispatch_ctr) > 1",
6305                           (Char const   *)"m_scheduler/scheduler.c", 1184,   6305                           (Char const   *)"m_scheduler/scheduler.c", 1184,
6306                           (Char const   *)"vgPlain_scheduler", "");   6306                           (Char const   *)"vgPlain_scheduler", "");
6307     }   6307     }
6308     handle_tt_miss(tid);   6308     handle_tt_miss(tid);
6309     break;   6309     break;
6310     case 65U:   6310     case 65U:
6311     do_client_request(tid);   6311     do_client_request(tid);
6312     break;   6312     break;
6313     case 73U:   6313     case 73U:
6314     case 91U:   6314     case 91U:
6315     case 89U:   6315     case 89U:
6316     case 77U:   6316     case 77U:
6317     handle_syscall(tid, trc);   6317     handle_syscall(tid, trc);
6318     if (vgPlain_clo_sanity_level > 2) {   6318     if (vgPlain_clo_sanity_level > 2) {
6319       vgPlain_sanity_check_general((Bool )1);   6319       vgPlain_sanity_check_general((Bool )1);
6320     } else {   6320     } else {
6321     6321  
6322     }   6322     }
6323     break;   6323     break;
6324     case 67U:   6324     case 67U:
6325     if (vgPlain_dispatch_ctr > 2000U) {   6325     if (vgPlain_dispatch_ctr > 2000U) {
6326       vgPlain_dispatch_ctr = (UInt )2000;   6326       vgPlain_dispatch_ctr = (UInt )2000;
6327     } else {   6327     } else {
6328     6328  
6329     }   6329     }
6330     break;   6330     break;
6331     case 41U:   6331     case 41U:
6332     tmp___13 = __builtin_expect((long )(! (! (vgPlain_dispatch_ctr == 1U))), 1L);   6332     tmp___13 = __builtin_expect((long )(! (! (vgPlain_dispatch_ctr == 1U))), 1L);
6333     if (tmp___13) {   6333     if (tmp___13) {
6334     6334  
6335     } else {   6335     } else {
6336       vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(dispatch_ctr) == 1",   6336       vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(dispatch_ctr) == 1",
6337                           (Char const   *)"m_scheduler/scheduler.c", 1215,   6337                           (Char const   *)"m_scheduler/scheduler.c", 1215,
6338                           (Char const   *)"vgPlain_scheduler", "");   6338                           (Char const   *)"vgPlain_scheduler", "");
6339     }   6339     }
6340     break;   6340     break;
6341     case 43U:   6341     case 43U:
6342     break;   6342     break;
6343     case 71U:   6343     case 71U:
6344     vgPlain_synth_fault(tid);   6344     vgPlain_synth_fault(tid);
6345     break;   6345     break;
6346     case 63U:   6346     case 63U:
6347     if (! counts_initted) {   6347     if (! counts_initted) {
6348       counts_initted = (Bool )1;   6348       counts_initted = (Bool )1;
6349       q = 0;   6349       q = 0;
6350       while (q < 10) {   6350       while (q < 10) {
6351         counts[q] = 0;   6351         counts[q] = 0;
6352         q ++;   6352         q ++;
6353       }   6353       }
6354     } else {   6354     } else {
6355     6355  
6356     }   6356     }
6357     ew = (VexEmWarn )vgPlain_threads[tid].arch.vex.guest_EMWARN;   6357     ew = (VexEmWarn )vgPlain_threads[tid].arch.vex.guest_EMWARN;
6358     if ((unsigned int )ew < 0U) {   6358     if ((unsigned int )ew < 0U) {
6359       what = (HChar *)"unknown (?!)";   6359       what = (HChar *)"unknown (?!)";
6360     } else   6360     } else
6361     if ((unsigned int )ew >= 10U) {   6361     if ((unsigned int )ew >= 10U) {
6362       what = (HChar *)"unknown (?!)";   6362       what = (HChar *)"unknown (?!)";
6363     } else {   6363     } else {
6364       tmp___14 = LibVEX_EmWarn_string(ew);   6364       tmp___14 = LibVEX_EmWarn_string(ew);
6365       what = tmp___14;   6365       what = tmp___14;
6366     }   6366     }
6367     if ((unsigned int )ew < 0U) {   6367     if ((unsigned int )ew < 0U) {
6368       show = (Bool )1;   6368       show = (Bool )1;
6369     } else   6369     } else
6370     if ((unsigned int )ew >= 10U) {   6370     if ((unsigned int )ew >= 10U) {
6371       show = (Bool )1;   6371       show = (Bool )1;
6372     } else {   6372     } else {
6373       tmp___15 = counts[ew];   6373       tmp___15 = counts[ew];
6374       (counts[ew]) ++;   6374       (counts[ew]) ++;
6375       show = (Bool )(tmp___15 < 3);   6375       show = (Bool )(tmp___15 < 3);
6376     }   6376     }
6377     if (show) {   6377     if (show) {
6378       if (vgPlain_clo_show_emwarns) {   6378       if (vgPlain_clo_show_emwarns) {
6379         if (! vgPlain_clo_xml) {   6379         if (! vgPlain_clo_xml) {
6380           vgPlain_message((VgMsgKind )1,   6380           vgPlain_message((VgMsgKind )1,
6381                           "Emulation warning: unsupported action:\n");   6381                           "Emulation warning: unsupported action:\n");
6382           vgPlain_message((VgMsgKind )1, "  %s\n", what);   6382           vgPlain_message((VgMsgKind )1, "  %s\n", what);
6383           vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);   6383           vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);
6384         } else {   6384         } else {
6385     6385  
6386         }   6386         }
6387       } else {   6387       } else {
6388     6388  
6389       }   6389       }
6390     } else {   6390     } else {
6391     6391  
6392     }   6392     }
6393     break;   6393     break;
6394     case 83U:   6394     case 83U:
6395     ew___0 = (VexEmWarn )vgPlain_threads[tid].arch.vex.guest_EMWARN;   6395     ew___0 = (VexEmWarn )vgPlain_threads[tid].arch.vex.guest_EMWARN;
6396     if ((unsigned int )ew___0 < 0U) {   6396     if ((unsigned int )ew___0 < 0U) {
6397       what___0 = (HChar *)"unknown (?!)";   6397       what___0 = (HChar *)"unknown (?!)";
6398     } else   6398     } else
6399     if ((unsigned int )ew___0 >= 10U) {   6399     if ((unsigned int )ew___0 >= 10U) {
6400       what___0 = (HChar *)"unknown (?!)";   6400       what___0 = (HChar *)"unknown (?!)";
6401     } else {   6401     } else {
6402       tmp___16 = LibVEX_EmWarn_string(ew___0);   6402       tmp___16 = LibVEX_EmWarn_string(ew___0);
6403       what___0 = tmp___16;   6403       what___0 = tmp___16;
6404     }   6404     }
6405     vgPlain_message((VgMsgKind )1,   6405     vgPlain_message((VgMsgKind )1,
6406                     "Emulation fatal error -- Valgrind cannot continue:\n");   6406                     "Emulation fatal error -- Valgrind cannot continue:\n");
6407     vgPlain_message((VgMsgKind )1, "  %s\n", what___0);   6407     vgPlain_message((VgMsgKind )1, "  %s\n", what___0);
6408     vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);   6408     vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);
6409     vgPlain_message((VgMsgKind )1, "\n");   6409     vgPlain_message((VgMsgKind )1, "\n");
6410     vgPlain_message((VgMsgKind )1, "Valgrind has to exit now.  Sorry.\n");   6410     vgPlain_message((VgMsgKind )1, "Valgrind has to exit now.  Sorry.\n");
6411     vgPlain_message((VgMsgKind )1, "\n");   6411     vgPlain_message((VgMsgKind )1, "\n");
6412     vgPlain_exit(1);   6412     vgPlain_exit(1);
6413     break;   6413     break;
6414     case 85U:   6414     case 85U:
6415     vgPlain_synth_sigtrap(tid);   6415     vgPlain_synth_sigtrap(tid);
6416     break;   6416     break;
6417     case 87U:   6417     case 87U:
6418     vgPlain_synth_fault(tid);   6418     vgPlain_synth_fault(tid);
6419     break;   6419     break;
6420     case 93U:   6420     case 93U:
6421     vgPlain_synth_sigbus(tid);   6421     vgPlain_synth_sigbus(tid);
6422     break;   6422     break;
6423     case 69U:   6423     case 69U:
6424     tmp___17 = vgPlain_get_IP(tid);   6424     tmp___17 = vgPlain_get_IP(tid);
6425     vgPlain_umsg("valgrind: Unrecognised instruction at address %#lx.\n",   6425     vgPlain_umsg("valgrind: Unrecognised instruction at address %#lx.\n",
6426                  tmp___17);   6426                  tmp___17);
6427     vgPlain_get_and_pp_StackTrace(tid, (UInt )50);   6427     vgPlain_get_and_pp_StackTrace(tid, (UInt )50);
6428     vgPlain_umsg("Your program just tried to execute an instruction that Valgrind\n");   6428     vgPlain_umsg("Your program just tried to execute an instruction that Valgrind\n");
6429     vgPlain_umsg("did not recognise.  There are two possible reasons for this.\n");   6429     vgPlain_umsg("did not recognise.  There are two possible reasons for this.\n");
6430     vgPlain_umsg("1. Your program has a bug and erroneously jumped to a non-code\n");   6430     vgPlain_umsg("1. Your program has a bug and erroneously jumped to a non-code\n");
6431     vgPlain_umsg("   location.  If you are running Memcheck and you just saw a\n");   6431     vgPlain_umsg("   location.  If you are running Memcheck and you just saw a\n");
6432     vgPlain_umsg("   warning about a bad jump, it\'s probably your program\'s fault.\n");   6432     vgPlain_umsg("   warning about a bad jump, it\'s probably your program\'s fault.\n");
6433     vgPlain_umsg("2. The instruction is legitimate but Valgrind doesn\'t handle it,\n");   6433     vgPlain_umsg("2. The instruction is legitimate but Valgrind doesn\'t handle it,\n");
6434     vgPlain_umsg("   i.e. it\'s Valgrind\'s fault.  If you think this is the case or\n");   6434     vgPlain_umsg("   i.e. it\'s Valgrind\'s fault.  If you think this is the case or\n");
6435     vgPlain_umsg("   you are not sure, please let us know and we\'ll try to fix it.\n");   6435     vgPlain_umsg("   you are not sure, please let us know and we\'ll try to fix it.\n");
6436     vgPlain_umsg("Either way, Valgrind will now raise a SIGILL signal which will\n");   6436     vgPlain_umsg("Either way, Valgrind will now raise a SIGILL signal which will\n");
6437     vgPlain_umsg("probably kill your program.\n");   6437     vgPlain_umsg("probably kill your program.\n");
6438     tmp___18 = vgPlain_get_IP(tid);   6438     tmp___18 = vgPlain_get_IP(tid);
6439     vgPlain_synth_sigill(tid, tmp___18);   6439     vgPlain_synth_sigill(tid, tmp___18);
6440     break;   6440     break;
6441     case 61U:   6441     case 61U:
6442     vgPlain_discard_translations((Addr64 )vgPlain_threads[tid].arch.vex.guest_TISTART,   6442     vgPlain_discard_translations((Addr64 )vgPlain_threads[tid].arch.vex.guest_TISTART,
6443                                  (ULong )vgPlain_threads[tid].arch.vex.guest_TILEN,   6443                                  (ULong )vgPlain_threads[tid].arch.vex.guest_TILEN,
6444                                  (HChar *)"scheduler(VEX_TRC_JMP_TINVAL)");   6444                                  (HChar *)"scheduler(VEX_TRC_JMP_TINVAL)");
6445     break;   6445     break;
6446     case 47U:   6446     case 47U:
6447     tmp___19 = __builtin_expect(0L, 1L);   6447     tmp___19 = __builtin_expect(0L, 1L);
6448     if (tmp___19) {   6448     if (tmp___19) {
6449     6449  
6450     } else {   6450     } else {
6451       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6451       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6452                           (Char const   *)"m_scheduler/scheduler.c", 1334,   6452                           (Char const   *)"m_scheduler/scheduler.c", 1334,
6453                           (Char const   *)"vgPlain_scheduler",   6453                           (Char const   *)"vgPlain_scheduler",
6454                           "VG_(scheduler), phase 3: run_innerloop detected host state invariant failure",   6454                           "VG_(scheduler), phase 3: run_innerloop detected host state invariant failure",
6455                           trc);   6455                           trc);
6456     }   6456     }
6457     case 79U:   6457     case 79U:
6458     tmp___20 = __builtin_expect(0L, 1L);   6458     tmp___20 = __builtin_expect(0L, 1L);
6459     if (tmp___20) {   6459     if (tmp___20) {
6460     6460  
6461     } else {   6461     } else {
6462       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6462       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6463                           (Char const   *)"m_scheduler/scheduler.c", 1346,   6463                           (Char const   *)"m_scheduler/scheduler.c", 1346,
6464                           (Char const   *)"vgPlain_scheduler",   6464                           (Char const   *)"vgPlain_scheduler",
6465                           "VG_(scheduler), phase 3: sysenter_x86 on x86-linux is not supported");   6465                           "VG_(scheduler), phase 3: sysenter_x86 on x86-linux is not supported");
6466     }   6466     }
6467     break;   6467     break;
6468     default:   6468     default:
6469     tmp___21 = __builtin_expect(0L, 1L);   6469     tmp___21 = __builtin_expect(0L, 1L);
6470     if (tmp___21) {   6470     if (tmp___21) {
6471     6471  
6472     } else {   6472     } else {
6473       vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6473       vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6474                           (Char const   *)"m_scheduler/scheduler.c", 1360,   6474                           (Char const   *)"m_scheduler/scheduler.c", 1360,
6475                           (Char const   *)"vgPlain_scheduler",   6475                           (Char const   *)"vgPlain_scheduler",
6476                           "VG_(scheduler), phase 3: unexpected thread return code (%u)",   6476                           "VG_(scheduler), phase 3: unexpected thread return code (%u)",
6477                           trc);   6477                           trc);
6478     }   6478     }
6479     break;   6479     break;
6480     }   6480     }
6481   }   6481   }
6482   if (vgPlain_clo_trace_sched) {   6482   if (vgPlain_clo_trace_sched) {
6483     print_sched_event(tid, (Char *)"exiting VG_(scheduler)");   6483     print_sched_event(tid, (Char *)"exiting VG_(scheduler)");
6484   } else {   6484   } else {
6485     6485  
6486   }   6486   }
6487   tmp___23 = vgPlain_is_exiting(tid);   6487   tmp___23 = vgPlain_is_exiting(tid);
6488   if (tmp___23) {   6488   if (tmp___23) {
6489     tmp___24 = 1;   6489     tmp___24 = 1;
6490   } else {   6490   } else {
6491     tmp___24 = 0;   6491     tmp___24 = 0;
6492   }   6492   }
6493   tmp___25 = __builtin_expect((long )tmp___24, 1L);   6493   tmp___25 = __builtin_expect((long )tmp___24, 1L);
6494   if (tmp___25) {   6494   if (tmp___25) {
6495     6495  
6496   } else {   6496   } else {
6497     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_exiting)(tid)",   6497     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_exiting)(tid)",
6498                         (Char const   *)"m_scheduler/scheduler.c", 1373,   6498                         (Char const   *)"m_scheduler/scheduler.c", 1373,
6499                         (Char const   *)"vgPlain_scheduler", "");   6499                         (Char const   *)"vgPlain_scheduler", "");
6500   }   6500   }
6501   return (tst->exitreason);   6501   return (tst->exitreason);
6502 }   6502 }
6503 }   6503 }
6504 void vgPlain_nuke_all_threads_except(ThreadId me , VgSchedReturnCode src )   6504 void vgPlain_nuke_all_threads_except(ThreadId me , VgSchedReturnCode src )
6505 {   6505 {
6506   ThreadId tid ;   6506   ThreadId tid ;
6507   Bool tmp ;   6507   Bool tmp ;
6508   int tmp___0 ;   6508   int tmp___0 ;
6509   long tmp___1 ;   6509   long tmp___1 ;
6510     6510  
6511   {   6511   {
6512   tmp = vgPlain_is_running_thread(me);   6512   tmp = vgPlain_is_running_thread(me);
6513   if (tmp) {   6513   if (tmp) {
6514     tmp___0 = 1;   6514     tmp___0 = 1;
6515   } else {   6515   } else {
6516     tmp___0 = 0;   6516     tmp___0 = 0;
6517   }   6517   }
6518   tmp___1 = __builtin_expect((long )tmp___0, 1L);   6518   tmp___1 = __builtin_expect((long )tmp___0, 1L);
6519   if (tmp___1) {   6519   if (tmp___1) {
6520     6520  
6521   } else {   6521   } else {
6522     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(me)",   6522     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(me)",
6523                         (Char const   *)"m_scheduler/scheduler.c", 1388,   6523                         (Char const   *)"m_scheduler/scheduler.c", 1388,
6524                         (Char const   *)"vgPlain_nuke_all_threads_except", "");   6524                         (Char const   *)"vgPlain_nuke_all_threads_except", "");
6525   }   6525   }
6526   tid = (ThreadId )1;   6526   tid = (ThreadId )1;
6527   while (tid < 500U) {   6527   while (tid < 500U) {
6528     if (tid == me) {   6528     if (tid == me) {
6529       goto __Cont;   6529       goto __Cont;
6530     } else   6530     } else
6531     if ((unsigned int )vgPlain_threads[tid].status == 0U) {   6531     if ((unsigned int )vgPlain_threads[tid].status == 0U) {
6532       goto __Cont;   6532       goto __Cont;
6533     } else {   6533     } else {
6534     6534  
6535     }   6535     }
6536     vgPlain_threads[tid].exitreason = src;   6536     vgPlain_threads[tid].exitreason = src;
6537     if ((unsigned int )src == 3U) {   6537     if ((unsigned int )src == 3U) {
6538       vgPlain_threads[tid].os_state.fatalsig = 9;   6538       vgPlain_threads[tid].os_state.fatalsig = 9;
6539     } else {   6539     } else {
6540     6540  
6541     }   6541     }
6542     vgPlain_get_thread_out_of_syscall(tid);   6542     vgPlain_get_thread_out_of_syscall(tid);
6543     __Cont: /* CIL Label */   6543     __Cont: /* CIL Label */
6544     tid ++;   6544     tid ++;
6545   }   6545   }
6546   return;   6546   return;
6547 }   6547 }
6548 }   6548 }
6549 static Bool os_client_request(ThreadId tid , UWord *args )   6549 static Bool os_client_request(ThreadId tid , UWord *args )
6550 {   6550 {
6551   Bool handled ;   6551   Bool handled ;
6552   Bool tmp ;   6552   Bool tmp ;
6553   int tmp___0 ;   6553   int tmp___0 ;
6554   long tmp___1 ;   6554   long tmp___1 ;
6555     6555  
6556   {   6556   {
6557   handled = (Bool )1;   6557   handled = (Bool )1;
6558   tmp = vgPlain_is_running_thread(tid);   6558   tmp = vgPlain_is_running_thread(tid);
6559   if (tmp) {   6559   if (tmp) {
6560     tmp___0 = 1;   6560     tmp___0 = 1;
6561   } else {   6561   } else {
6562     tmp___0 = 0;   6562     tmp___0 = 0;
6563   }   6563   }
6564   tmp___1 = __builtin_expect((long )tmp___0, 1L);   6564   tmp___1 = __builtin_expect((long )tmp___0, 1L);
6565   if (tmp___1) {   6565   if (tmp___1) {
6566     6566  
6567   } else {   6567   } else {
6568     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",   6568     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_running_thread)(tid)",
6569                         (Char const   *)"m_scheduler/scheduler.c", 1458,   6569                         (Char const   *)"m_scheduler/scheduler.c", 1458,
6570                         (Char const   *)"os_client_request", "");   6570                         (Char const   *)"os_client_request", "");
6571   }   6571   }
6572   switch (*(args + 0)) {   6572   switch (*(args + 0)) {
6573   case 12329UL:   6573   case 12329UL:
6574   if (vgPlain_clo_trace_syscalls) {   6574   if (vgPlain_clo_trace_syscalls) {
6575     vgPlain_message((VgMsgKind )2, "__libc_freeres() done; really quitting!\n");   6575     vgPlain_message((VgMsgKind )2, "__libc_freeres() done; really quitting!\n");
6576   } else   6576   } else
6577   if (vgPlain_clo_trace_sched) {   6577   if (vgPlain_clo_trace_sched) {
6578     vgPlain_message((VgMsgKind )2, "__libc_freeres() done; really quitting!\n");   6578     vgPlain_message((VgMsgKind )2, "__libc_freeres() done; really quitting!\n");
6579   } else {   6579   } else {
6580     6580  
6581   }   6581   }
6582   vgPlain_threads[tid].exitreason = (VgSchedReturnCode )1;   6582   vgPlain_threads[tid].exitreason = (VgSchedReturnCode )1;
6583   break;   6583   break;
6584   default:   6584   default:
6585   handled = (Bool )0;   6585   handled = (Bool )0;
6586   break;   6586   break;
6587   }   6587   }
6588   return (handled);   6588   return (handled);
6589 }   6589 }
6590 }   6590 }
6591 static void do_client_request(ThreadId tid ) ;   6591 static void do_client_request(ThreadId tid ) ;
6592 static Bool whined  =    (Bool )0;   6592 static Bool whined  =    (Bool )0;
6593 static void do_client_request(ThreadId tid )   6593 static void do_client_request(ThreadId tid )
6594 {   6594 {
6595   UWord *arg ;   6595   UWord *arg ;
6596   UWord req_no ;   6596   UWord req_no ;
6597   UWord (*f)(ThreadId  ) ;   6597   UWord (*f)(ThreadId  ) ;
6598   UWord tmp ;   6598   UWord tmp ;
6599   UWord (*f___0)(ThreadId  , UWord  ) ;   6599   UWord (*f___0)(ThreadId  , UWord  ) ;
6600   UWord tmp___0 ;   6600   UWord tmp___0 ;
6601   UWord (*f___1)(ThreadId  , UWord  , UWord  ) ;   6601   UWord (*f___1)(ThreadId  , UWord  , UWord  ) ;
6602   UWord tmp___1 ;   6602   UWord tmp___1 ;
6603   UWord (*f___2)(ThreadId  , UWord  , UWord  , UWord  ) ;   6603   UWord (*f___2)(ThreadId  , UWord  , UWord  , UWord  ) ;
6604   UWord tmp___2 ;   6604   UWord tmp___2 ;
6605   unsigned int volatile   _zzq_args[6] ;   6605   unsigned int volatile   _zzq_args[6] ;
6606   unsigned int volatile   _zzq_result ;   6606   unsigned int volatile   _zzq_result ;
6607   union __anonunion_u_139 u ;   6607   union __anonunion_u_139 u ;
6608   Int count ;   6608   Int count ;
6609   UInt tmp___3 ;   6609   UInt tmp___3 ;
6610   union __anonunion_u_140 u___0 ;   6610   union __anonunion_u_140 u___0 ;
6611   Int count___0 ;   6611   Int count___0 ;
6612   UInt tmp___4 ;   6612   UInt tmp___4 ;
6613   va_list *vargsp ;   6613   va_list *vargsp ;
6614   Int count___1 ;   6614   Int count___1 ;
6615   UInt tmp___5 ;   6615   UInt tmp___5 ;
6616   va_list *vargsp___0 ;   6616   va_list *vargsp___0 ;
6617   Int count___2 ;   6617   Int count___2 ;
6618   UInt tmp___6 ;   6618   UInt tmp___6 ;
6619   va_list *vargsp___1 ;   6619   va_list *vargsp___1 ;
6620   Int count___3 ;   6620   Int count___3 ;
6621   UInt tmp___7 ;   6621   UInt tmp___7 ;
6622   UWord sid ;   6622   UWord sid ;
6623   UWord tmp___8 ;   6623   UWord tmp___8 ;
6624   struct vg_mallocfunc_info *info ;   6624   struct vg_mallocfunc_info *info ;
6625   Addr ip ;   6625   Addr ip ;
6626   UChar *buf64 ;   6626   UChar *buf64 ;
6627   UInt linenum ;   6627   UInt linenum ;
6628   Bool ok ;   6628   Bool ok ;
6629   Bool tmp___9 ;   6629   Bool tmp___9 ;
6630   UInt i ;   6630   UInt i ;
6631   long tmp___10 ;   6631   long tmp___10 ;
6632   UWord ret ;   6632   UWord ret ;
6633   long tmp___11 ;   6633   long tmp___11 ;
6634   Bool tmp___12 ;   6634   Bool tmp___12 ;
6635   Char c1 ;   6635   Char c1 ;
6636   Char c2 ;   6636   Char c2 ;
6637   Bool tmp___13 ;   6637   Bool tmp___13 ;
6638   long tmp___14 ;   6638   long tmp___14 ;
6639     6639  
6640   {   6640   {
6641   arg = (UWord *)vgPlain_threads[tid].arch.vex.guest_EAX;   6641   arg = (UWord *)vgPlain_threads[tid].arch.vex.guest_EAX;
6642   req_no = *(arg + 0);   6642   req_no = *(arg + 0);
6643   switch (req_no) {   6643   switch (req_no) {
6644   case 4353UL:   6644   case 4353UL:
6645   f = (UWord (*)(ThreadId  ))((void *)*(arg + 1));   6645   f = (UWord (*)(ThreadId  ))((void *)*(arg + 1));
6646   if ((unsigned int )f == (unsigned int )((void *)0)) {   6646   if ((unsigned int )f == (unsigned int )((void *)0)) {
6647     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL0: func=%p\n", f);   6647     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL0: func=%p\n", f);
6648   } else {   6648   } else {
6649     while (1) {   6649     while (1) {
6650       tmp = (*f)(tid);   6650       tmp = (*f)(tid);
6651       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp;   6651       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp;
6652       while (1) {   6652       while (1) {
6653         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {   6653         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {
6654           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,   6654           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,
6655                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6655                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6656                                                                     (SizeT )sizeof(UWord ),   6656                                                                     (SizeT )sizeof(UWord ),
6657                                                                     (Addr )f);   6657                                                                     (Addr )f);
6658         } else {   6658         } else {
6659     6659  
6660         }   6660         }
6661         break;   6661         break;
6662       }   6662       }
6663       break;   6663       break;
6664     }   6664     }
6665   }   6665   }
6666   break;   6666   break;
6667   case 4354UL:   6667   case 4354UL:
6668   f___0 = (UWord (*)(ThreadId  , UWord  ))((void *)*(arg + 1));   6668   f___0 = (UWord (*)(ThreadId  , UWord  ))((void *)*(arg + 1));
6669   if ((unsigned int )f___0 == (unsigned int )((void *)0)) {   6669   if ((unsigned int )f___0 == (unsigned int )((void *)0)) {
6670     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL1: func=%p\n", f___0);   6670     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL1: func=%p\n", f___0);
6671   } else {   6671   } else {
6672     while (1) {   6672     while (1) {
6673       tmp___0 = (*f___0)(tid, *(arg + 2));   6673       tmp___0 = (*f___0)(tid, *(arg + 2));
6674       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp___0;   6674       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp___0;
6675       while (1) {   6675       while (1) {
6676         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {   6676         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {
6677           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,   6677           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,
6678                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6678                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6679                                                                     (SizeT )sizeof(UWord ),   6679                                                                     (SizeT )sizeof(UWord ),
6680                                                                     (Addr )f___0);   6680                                                                     (Addr )f___0);
6681         } else {   6681         } else {
6682     6682  
6683         }   6683         }
6684         break;   6684         break;
6685       }   6685       }
6686       break;   6686       break;
6687     }   6687     }
6688   }   6688   }
6689   break;   6689   break;
6690   case 4355UL:   6690   case 4355UL:
6691   f___1 = (UWord (*)(ThreadId  , UWord  , UWord  ))((void *)*(arg + 1));   6691   f___1 = (UWord (*)(ThreadId  , UWord  , UWord  ))((void *)*(arg + 1));
6692   if ((unsigned int )f___1 == (unsigned int )((void *)0)) {   6692   if ((unsigned int )f___1 == (unsigned int )((void *)0)) {
6693     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL2: func=%p\n", f___1);   6693     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL2: func=%p\n", f___1);
6694   } else {   6694   } else {
6695     while (1) {   6695     while (1) {
6696       tmp___1 = (*f___1)(tid, *(arg + 2), *(arg + 3));   6696       tmp___1 = (*f___1)(tid, *(arg + 2), *(arg + 3));
6697       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp___1;   6697       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp___1;
6698       while (1) {   6698       while (1) {
6699         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {   6699         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {
6700           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,   6700           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,
6701                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6701                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6702                                                                     (SizeT )sizeof(UWord ),   6702                                                                     (SizeT )sizeof(UWord ),
6703                                                                     (Addr )f___1);   6703                                                                     (Addr )f___1);
6704         } else {   6704         } else {
6705     6705  
6706         }   6706         }
6707         break;   6707         break;
6708       }   6708       }
6709       break;   6709       break;
6710     }   6710     }
6711   }   6711   }
6712   break;   6712   break;
6713   case 4356UL:   6713   case 4356UL:
6714   f___2 = (UWord (*)(ThreadId  , UWord  , UWord  , UWord  ))((void *)*(arg + 1));   6714   f___2 = (UWord (*)(ThreadId  , UWord  , UWord  , UWord  ))((void *)*(arg + 1));
6715   if ((unsigned int )f___2 == (unsigned int )((void *)0)) {   6715   if ((unsigned int )f___2 == (unsigned int )((void *)0)) {
6716     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL3: func=%p\n", f___2);   6716     vgPlain_message((VgMsgKind )2, "VG_USERREQ__CLIENT_CALL3: func=%p\n", f___2);
6717   } else {   6717   } else {
6718     while (1) {   6718     while (1) {
6719       tmp___2 = (*f___2)(tid, *(arg + 2), *(arg + 3), *(arg + 4));   6719       tmp___2 = (*f___2)(tid, *(arg + 2), *(arg + 3), *(arg + 4));
6720       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp___2;   6720       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )tmp___2;
6721       while (1) {   6721       while (1) {
6722         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {   6722         if (vgPlain_tdict.track_post_reg_write_clientcall_return) {
6723           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,   6723           (*(vgPlain_tdict.track_post_reg_write_clientcall_return))(tid,
6724                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6724                                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6725                                                                     (SizeT )sizeof(UWord ),   6725                                                                     (SizeT )sizeof(UWord ),
6726                                                                     (Addr )f___2);   6726                                                                     (Addr )f___2);
6727         } else {   6727         } else {
6728     6728  
6729         }   6729         }
6730         break;   6730         break;
6731       }   6731       }
6732       break;   6732       break;
6733     }   6733     }
6734   }   6734   }
6735   break;   6735   break;
6736   case 4097UL:   6736   case 4097UL:
6737   while (1) {   6737   while (1) {
6738     _zzq_args[0] = (unsigned int volatile   )4097U;   6738     _zzq_args[0] = (unsigned int volatile   )4097U;
6739     _zzq_args[1] = (unsigned int volatile   )0U;   6739     _zzq_args[1] = (unsigned int volatile   )0U;
6740     _zzq_args[2] = (unsigned int volatile   )0U;   6740     _zzq_args[2] = (unsigned int volatile   )0U;
6741     _zzq_args[3] = (unsigned int volatile   )0U;   6741     _zzq_args[3] = (unsigned int volatile   )0U;
6742     _zzq_args[4] = (unsigned int volatile   )0U;   6742     _zzq_args[4] = (unsigned int volatile   )0U;
6743     _zzq_args[5] = (unsigned int volatile   )0U;   6743     _zzq_args[5] = (unsigned int volatile   )0U;
6744     __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"   6744     __asm__  volatile   ("roll $3,  %%edi ; roll $13, %%edi\n\t"
6745                          "roll $29, %%edi ; roll $19, %%edi\n\t"   6745                          "roll $29, %%edi ; roll $19, %%edi\n\t"
6746                          "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),   6746                          "xchgl %%ebx,%%ebx": "=d" (_zzq_result): "a" (& _zzq_args[0]),
6747                          "0" (0): "cc", "memory");   6747                          "0" (0): "cc", "memory");
6748     vgPlain_threads[tid].arch.vex.guest_EDX = (unsigned int )_zzq_result + 1U;   6748     vgPlain_threads[tid].arch.vex.guest_EDX = (unsigned int )_zzq_result + 1U;
6749     while (1) {   6749     while (1) {
6750       if (vgPlain_tdict.track_post_reg_write) {   6750       if (vgPlain_tdict.track_post_reg_write) {
6751         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6751         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6752                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6752                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6753                                                 (SizeT )sizeof(UWord ));   6753                                                 (SizeT )sizeof(UWord ));
6754       } else {   6754       } else {
6755     6755  
6756       }   6756       }
6757       break;   6757       break;
6758     }   6758     }
6759     break;   6759     break;
6760   }   6760   }
6761   break;   6761   break;
6762   case 5121UL:   6762   case 5121UL:
6763   if (sizeof(va_list ) != sizeof(UWord )) {   6763   if (sizeof(va_list ) != sizeof(UWord )) {
6764     goto va_list_casting_error_NORETURN;   6764     goto va_list_casting_error_NORETURN;
6765   } else {   6765   } else {
6766     6766  
6767   }   6767   }
6768   u.uw = *(arg + 2);   6768   u.uw = *(arg + 2);
6769   tmp___3 = vgPlain_vmessage((VgMsgKind )3,   6769   tmp___3 = vgPlain_vmessage((VgMsgKind )3,
6770                              (HChar const   *)((char *)*(arg + 1)), u.vargs);   6770                              (HChar const   *)((char *)*(arg + 1)), u.vargs);
6771   count = (Int )tmp___3;   6771   count = (Int )tmp___3;
6772   vgPlain_message_flush();   6772   vgPlain_message_flush();
6773   while (1) {   6773   while (1) {
6774     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count;   6774     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count;
6775     while (1) {   6775     while (1) {
6776       if (vgPlain_tdict.track_post_reg_write) {   6776       if (vgPlain_tdict.track_post_reg_write) {
6777         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6777         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6778                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6778                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6779                                                 (SizeT )sizeof(UWord ));   6779                                                 (SizeT )sizeof(UWord ));
6780       } else {   6780       } else {
6781     6781  
6782       }   6782       }
6783       break;   6783       break;
6784     }   6784     }
6785     break;   6785     break;
6786   }   6786   }
6787   break;   6787   break;
6788   case 5122UL:   6788   case 5122UL:
6789   if (sizeof(va_list ) != sizeof(UWord )) {   6789   if (sizeof(va_list ) != sizeof(UWord )) {
6790     goto va_list_casting_error_NORETURN;   6790     goto va_list_casting_error_NORETURN;
6791   } else {   6791   } else {
6792     6792  
6793   }   6793   }
6794   u___0.uw = *(arg + 2);   6794   u___0.uw = *(arg + 2);
6795   tmp___4 = vgPlain_vmessage((VgMsgKind )3,   6795   tmp___4 = vgPlain_vmessage((VgMsgKind )3,
6796                              (HChar const   *)((char *)*(arg + 1)), u___0.vargs);   6796                              (HChar const   *)((char *)*(arg + 1)), u___0.vargs);
6797   count___0 = (Int )tmp___4;   6797   count___0 = (Int )tmp___4;
6798   vgPlain_message_flush();   6798   vgPlain_message_flush();
6799   vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);   6799   vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);
6800   while (1) {   6800   while (1) {
6801     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___0;   6801     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___0;
6802     while (1) {   6802     while (1) {
6803       if (vgPlain_tdict.track_post_reg_write) {   6803       if (vgPlain_tdict.track_post_reg_write) {
6804         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6804         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6805                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6805                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6806                                                 (SizeT )sizeof(UWord ));   6806                                                 (SizeT )sizeof(UWord ));
6807       } else {   6807       } else {
6808     6808  
6809       }   6809       }
6810       break;   6810       break;
6811     }   6811     }
6812     break;   6812     break;
6813   }   6813   }
6814   break;   6814   break;
6815   case 5123UL:   6815   case 5123UL:
6816   vargsp = (va_list *)*(arg + 2);   6816   vargsp = (va_list *)*(arg + 2);
6817   tmp___5 = vgPlain_vmessage((VgMsgKind )3,   6817   tmp___5 = vgPlain_vmessage((VgMsgKind )3,
6818                              (HChar const   *)((char *)*(arg + 1)), *vargsp);   6818                              (HChar const   *)((char *)*(arg + 1)), *vargsp);
6819   count___1 = (Int )tmp___5;   6819   count___1 = (Int )tmp___5;
6820   vgPlain_message_flush();   6820   vgPlain_message_flush();
6821   while (1) {   6821   while (1) {
6822     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___1;   6822     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___1;
6823     while (1) {   6823     while (1) {
6824       if (vgPlain_tdict.track_post_reg_write) {   6824       if (vgPlain_tdict.track_post_reg_write) {
6825         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6825         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6826                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6826                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6827                                                 (SizeT )sizeof(UWord ));   6827                                                 (SizeT )sizeof(UWord ));
6828       } else {   6828       } else {
6829     6829  
6830       }   6830       }
6831       break;   6831       break;
6832     }   6832     }
6833     break;   6833     break;
6834   }   6834   }
6835   break;   6835   break;
6836   case 5124UL:   6836   case 5124UL:
6837   vargsp___0 = (va_list *)*(arg + 2);   6837   vargsp___0 = (va_list *)*(arg + 2);
6838   tmp___6 = vgPlain_vmessage((VgMsgKind )3,   6838   tmp___6 = vgPlain_vmessage((VgMsgKind )3,
6839                              (HChar const   *)((char *)*(arg + 1)), *vargsp___0);   6839                              (HChar const   *)((char *)*(arg + 1)), *vargsp___0);
6840   count___2 = (Int )tmp___6;   6840   count___2 = (Int )tmp___6;
6841   vgPlain_message_flush();   6841   vgPlain_message_flush();
6842   vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);   6842   vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);
6843   while (1) {   6843   while (1) {
6844     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___2;   6844     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___2;
6845     while (1) {   6845     while (1) {
6846       if (vgPlain_tdict.track_post_reg_write) {   6846       if (vgPlain_tdict.track_post_reg_write) {
6847         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6847         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6848                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6848                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6849                                                 (SizeT )sizeof(UWord ));   6849                                                 (SizeT )sizeof(UWord ));
6850       } else {   6850       } else {
6851     6851  
6852       }   6852       }
6853       break;   6853       break;
6854     }   6854     }
6855     break;   6855     break;
6856   }   6856   }
6857   break;   6857   break;
6858   case 12547UL:   6858   case 12547UL:
6859   vargsp___1 = (va_list *)*(arg + 2);   6859   vargsp___1 = (va_list *)*(arg + 2);
6860   tmp___7 = vgPlain_vmessage((VgMsgKind )2,   6860   tmp___7 = vgPlain_vmessage((VgMsgKind )2,
6861                              (HChar const   *)((char *)*(arg + 1)), *vargsp___1);   6861                              (HChar const   *)((char *)*(arg + 1)), *vargsp___1);
6862   count___3 = (Int )tmp___7;   6862   count___3 = (Int )tmp___7;
6863   vgPlain_message_flush();   6863   vgPlain_message_flush();
6864   while (1) {   6864   while (1) {
6865     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___3;   6865     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )count___3;
6866     while (1) {   6866     while (1) {
6867       if (vgPlain_tdict.track_post_reg_write) {   6867       if (vgPlain_tdict.track_post_reg_write) {
6868         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6868         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6869                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6869                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6870                                                 (SizeT )sizeof(UWord ));   6870                                                 (SizeT )sizeof(UWord ));
6871       } else {   6871       } else {
6872     6872  
6873       }   6873       }
6874       break;   6874       break;
6875     }   6875     }
6876     break;   6876     break;
6877   }   6877   }
6878   break;   6878   break;
6879   case 12548UL:   6879   case 12548UL:
6880   vgPlain_redir_add_ifunc_target(*(arg + 1), *(arg + 2));   6880   vgPlain_redir_add_ifunc_target(*(arg + 1), *(arg + 2));
6881   while (1) {   6881   while (1) {
6882     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   6882     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
6883     while (1) {   6883     while (1) {
6884       if (vgPlain_tdict.track_post_reg_write) {   6884       if (vgPlain_tdict.track_post_reg_write) {
6885         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6885         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6886                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6886                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6887                                                 (SizeT )sizeof(UWord ));   6887                                                 (SizeT )sizeof(UWord ));
6888       } else {   6888       } else {
6889     6889  
6890       }   6890       }
6891       break;   6891       break;
6892     }   6892     }
6893     break;   6893     break;
6894   }   6894   }
6895   break;   6895   break;
6896   case 5377UL:   6896   case 5377UL:
6897   tmp___8 = vgPlain_register_stack(*(arg + 1), *(arg + 2));   6897   tmp___8 = vgPlain_register_stack(*(arg + 1), *(arg + 2));
6898   sid = tmp___8;   6898   sid = tmp___8;
6899   while (1) {   6899   while (1) {
6900     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )sid;   6900     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )sid;
6901     while (1) {   6901     while (1) {
6902       if (vgPlain_tdict.track_post_reg_write) {   6902       if (vgPlain_tdict.track_post_reg_write) {
6903         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6903         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6904                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6904                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6905                                                 (SizeT )sizeof(UWord ));   6905                                                 (SizeT )sizeof(UWord ));
6906       } else {   6906       } else {
6907     6907  
6908       }   6908       }
6909       break;   6909       break;
6910     }   6910     }
6911     break;   6911     break;
6912   }   6912   }
6913   break;   6913   break;
6914   case 5378UL:   6914   case 5378UL:
6915   vgPlain_deregister_stack(*(arg + 1));   6915   vgPlain_deregister_stack(*(arg + 1));
6916   while (1) {   6916   while (1) {
6917     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   6917     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
6918     while (1) {   6918     while (1) {
6919       if (vgPlain_tdict.track_post_reg_write) {   6919       if (vgPlain_tdict.track_post_reg_write) {
6920         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6920         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6921                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6921                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6922                                                 (SizeT )sizeof(UWord ));   6922                                                 (SizeT )sizeof(UWord ));
6923       } else {   6923       } else {
6924     6924  
6925       }   6925       }
6926       break;   6926       break;
6927     }   6927     }
6928     break;   6928     break;
6929   }   6929   }
6930   break;   6930   break;
6931   case 5379UL:   6931   case 5379UL:
6932   vgPlain_change_stack(*(arg + 1), *(arg + 2), *(arg + 3));   6932   vgPlain_change_stack(*(arg + 1), *(arg + 2), *(arg + 3));
6933   while (1) {   6933   while (1) {
6934     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   6934     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
6935     while (1) {   6935     while (1) {
6936       if (vgPlain_tdict.track_post_reg_write) {   6936       if (vgPlain_tdict.track_post_reg_write) {
6937         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6937         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6938                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6938                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6939                                                 (SizeT )sizeof(UWord ));   6939                                                 (SizeT )sizeof(UWord ));
6940       } else {   6940       } else {
6941     6941  
6942       }   6942       }
6943       break;   6943       break;
6944     }   6944     }
6945     break;   6945     break;
6946   }   6946   }
6947   break;   6947   break;
6948   case 12336UL:   6948   case 12336UL:
6949   info = (struct vg_mallocfunc_info *)*(arg + 1);   6949   info = (struct vg_mallocfunc_info *)*(arg + 1);
6950   info->tl_malloc = vgPlain_tdict.tool_malloc;   6950   info->tl_malloc = vgPlain_tdict.tool_malloc;
6951   info->tl_calloc = vgPlain_tdict.tool_calloc;   6951   info->tl_calloc = vgPlain_tdict.tool_calloc;
6952   info->tl_realloc = vgPlain_tdict.tool_realloc;   6952   info->tl_realloc = vgPlain_tdict.tool_realloc;
6953   info->tl_memalign = vgPlain_tdict.tool_memalign;   6953   info->tl_memalign = vgPlain_tdict.tool_memalign;
6954   info->tl___builtin_new = vgPlain_tdict.tool___builtin_new;   6954   info->tl___builtin_new = vgPlain_tdict.tool___builtin_new;
6955   info->tl___builtin_vec_new = vgPlain_tdict.tool___builtin_vec_new;   6955   info->tl___builtin_vec_new = vgPlain_tdict.tool___builtin_vec_new;
6956   info->tl_free = vgPlain_tdict.tool_free;   6956   info->tl_free = vgPlain_tdict.tool_free;
6957   info->tl___builtin_delete = vgPlain_tdict.tool___builtin_delete;   6957   info->tl___builtin_delete = vgPlain_tdict.tool___builtin_delete;
6958   info->tl___builtin_vec_delete = vgPlain_tdict.tool___builtin_vec_delete;   6958   info->tl___builtin_vec_delete = vgPlain_tdict.tool___builtin_vec_delete;
6959   info->tl_malloc_usable_size = vgPlain_tdict.tool_malloc_usable_size;   6959   info->tl_malloc_usable_size = vgPlain_tdict.tool_malloc_usable_size;
6960   info->mallinfo = & vgPlain_mallinfo;   6960   info->mallinfo = & vgPlain_mallinfo;
6961   info->clo_trace_malloc = vgPlain_clo_trace_malloc;   6961   info->clo_trace_malloc = vgPlain_clo_trace_malloc;
6962   while (1) {   6962   while (1) {
6963     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   6963     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
6964     while (1) {   6964     while (1) {
6965       if (vgPlain_tdict.track_post_reg_write) {   6965       if (vgPlain_tdict.track_post_reg_write) {
6966         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6966         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6967                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6967                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6968                                                 (SizeT )sizeof(UWord ));   6968                                                 (SizeT )sizeof(UWord ));
6969       } else {   6969       } else {
6970     6970  
6971       }   6971       }
6972       break;   6972       break;
6973     }   6973     }
6974     break;   6974     break;
6975   }   6975   }
6976   break;   6976   break;
6977   case 4098UL:   6977   case 4098UL:
6978   if (vgPlain_clo_verbosity > 2) {   6978   if (vgPlain_clo_verbosity > 2) {
6979     vgPlain_printf("client request: DISCARD_TRANSLATIONS, addr %p,  len %lu\n",   6979     vgPlain_printf("client request: DISCARD_TRANSLATIONS, addr %p,  len %lu\n",
6980                    (void *)*(arg + 1), *(arg + 2));   6980                    (void *)*(arg + 1), *(arg + 2));
6981   } else {   6981   } else {
6982     6982  
6983   }   6983   }
6984   vgPlain_discard_translations((Addr64 )*(arg + 1), (ULong )*(arg + 2),   6984   vgPlain_discard_translations((Addr64 )*(arg + 1), (ULong )*(arg + 2),
6985                                (HChar *)"scheduler(VG_USERREQ__DISCARD_TRANSLATIONS)");   6985                                (HChar *)"scheduler(VG_USERREQ__DISCARD_TRANSLATIONS)");
6986   while (1) {   6986   while (1) {
6987     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   6987     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
6988     while (1) {   6988     while (1) {
6989       if (vgPlain_tdict.track_post_reg_write) {   6989       if (vgPlain_tdict.track_post_reg_write) {
6990         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   6990         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
6991                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   6991                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
6992                                                 (SizeT )sizeof(UWord ));   6992                                                 (SizeT )sizeof(UWord ));
6993       } else {   6993       } else {
6994     6994  
6995       }   6995       }
6996       break;   6996       break;
6997     }   6997     }
6998     break;   6998     break;
6999   }   6999   }
7000   break;   7000   break;
7001   case 4609UL:   7001   case 4609UL:
7002   while (1) {   7002   while (1) {
7003     vgPlain_threads[tid].arch.vex.guest_EDX = vgPlain_get_n_errs_found();   7003     vgPlain_threads[tid].arch.vex.guest_EDX = vgPlain_get_n_errs_found();
7004     while (1) {   7004     while (1) {
7005       if (vgPlain_tdict.track_post_reg_write) {   7005       if (vgPlain_tdict.track_post_reg_write) {
7006         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   7006         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
7007                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   7007                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
7008                                                 (SizeT )sizeof(UWord ));   7008                                                 (SizeT )sizeof(UWord ));
7009       } else {   7009       } else {
7010     7010  
7011       }   7011       }
7012       break;   7012       break;
7013     }   7013     }
7014     break;   7014     break;
7015   }   7015   }
7016   break;   7016   break;
7017   case 5633UL:   7017   case 5633UL:
7018   vgPlain_di_notify_pdb_debuginfo((Int )*(arg + 1), *(arg + 2), *(arg + 3),   7018   vgPlain_di_notify_pdb_debuginfo((Int )*(arg + 1), *(arg + 2), *(arg + 3),
7019                                   (PtrdiffT )*(arg + 4));   7019                                   (PtrdiffT )*(arg + 4));
7020   while (1) {   7020   while (1) {
7021     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   7021     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
7022     while (1) {   7022     while (1) {
7023       if (vgPlain_tdict.track_post_reg_write) {   7023       if (vgPlain_tdict.track_post_reg_write) {
7024         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   7024         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
7025                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   7025                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
7026                                                 (SizeT )sizeof(UWord ));   7026                                                 (SizeT )sizeof(UWord ));
7027       } else {   7027       } else {
7028     7028  
7029       }   7029       }
7030       break;   7030       break;
7031     }   7031     }
7032     break;   7032     break;
7033   }   7033   }
7034   break;   7034   break;
7035   case 5889UL:   7035   case 5889UL:
7036   ip = *(arg + 1);   7036   ip = *(arg + 1);
7037   buf64 = (UChar *)*(arg + 2);   7037   buf64 = (UChar *)*(arg + 2);
7038   vgPlain_memset((void *)buf64, 0, (SizeT )64);   7038   vgPlain_memset((void *)buf64, 0, (SizeT )64);
7039   linenum = (UInt )0;   7039   linenum = (UInt )0;
7040   tmp___9 = vgPlain_get_filename_linenum(ip, (Char *)(buf64 + 0), 50,   7040   tmp___9 = vgPlain_get_filename_linenum(ip, (Char *)(buf64 + 0), 50,
7041                                          (Char *)((void *)0), 0,   7041                                          (Char *)((void *)0), 0,
7042                                          (Bool *)((void *)0), & linenum);   7042                                          (Bool *)((void *)0), & linenum);
7043   ok = tmp___9;   7043   ok = tmp___9;
7044   if (ok) {   7044   if (ok) {
7045     i = (UInt )0;   7045     i = (UInt )0;
7046     while (i < 50U) {   7046     while (i < 50U) {
7047       if ((int )*(buf64 + i) == 0) {   7047       if ((int )*(buf64 + i) == 0) {
7048         break;   7048         break;
7049       } else {   7049       } else {
7050     7050  
7051       }   7051       }
7052       i ++;   7052       i ++;
7053     }   7053     }
7054     tmp___10 = __builtin_expect((long )(! (! (i < 50U))), 1L);   7054     tmp___10 = __builtin_expect((long )(! (! (i < 50U))), 1L);
7055     if (tmp___10) {   7055     if (tmp___10) {
7056     7056  
7057     } else {   7057     } else {
7058       vgPlain_assert_fail((Bool )1, (Char const   *)"i < 50",   7058       vgPlain_assert_fail((Bool )1, (Char const   *)"i < 50",
7059                           (Char const   *)"m_scheduler/scheduler.c", 1680,   7059                           (Char const   *)"m_scheduler/scheduler.c", 1680,
7060                           (Char const   *)"do_client_request", "");   7060                           (Char const   *)"do_client_request", "");
7061     }   7061     }
7062     vgPlain_sprintf((Char *)(buf64 + i), ":%u", linenum);   7062     vgPlain_sprintf((Char *)(buf64 + i), ":%u", linenum);
7063   } else {   7063   } else {
7064     *(buf64 + 0) = (UChar )0;   7064     *(buf64 + 0) = (UChar )0;
7065   }   7065   }
7066   while (1) {   7066   while (1) {
7067     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   7067     vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
7068     while (1) {   7068     while (1) {
7069       if (vgPlain_tdict.track_post_reg_write) {   7069       if (vgPlain_tdict.track_post_reg_write) {
7070         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   7070         (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
7071                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   7071                                                 (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
7072                                                 (SizeT )sizeof(UWord ));   7072                                                 (SizeT )sizeof(UWord ));
7073       } else {   7073       } else {
7074     7074  
7075       }   7075       }
7076       break;   7076       break;
7077     }   7077     }
7078     break;   7078     break;
7079   }   7079   }
7080   break;   7080   break;
7081   case 4866UL:   7081   case 4866UL:
7082   case 4875UL:   7082   case 4875UL:
7083   case 4865UL:   7083   case 4865UL:
7084   if (! *(arg + 1)) {   7084   if (! *(arg + 1)) {
7085     while (1) {   7085     while (1) {
7086       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;   7086       vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )0;
7087       while (1) {   7087       while (1) {
7088         if (vgPlain_tdict.track_post_reg_write) {   7088         if (vgPlain_tdict.track_post_reg_write) {
7089           (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   7089           (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
7090                                                   (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   7090                                                   (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
7091                                                   (SizeT )sizeof(UWord ));   7091                                                   (SizeT )sizeof(UWord ));
7092         } else {   7092         } else {
7093     7093  
7094         }   7094         }
7095         break;   7095         break;
7096       }   7096       }
7097       break;   7097       break;
7098     }   7098     }
7099     break;   7099     break;
7100   }   7100   }
7101   my_default:   7101   my_default:
7102   default:   7102   default:
7103   tmp___13 = os_client_request(tid, arg);   7103   tmp___13 = os_client_request(tid, arg);
7104   if (tmp___13) {   7104   if (tmp___13) {
7105     7105  
7106   } else   7106   } else
7107   if (vgPlain_needs.client_requests) {   7107   if (vgPlain_needs.client_requests) {
7108     if (vgPlain_clo_verbosity > 2) {   7108     if (vgPlain_clo_verbosity > 2) {
7109       vgPlain_printf("client request: code %lx,  addr %p,  len %lu\n",   7109       vgPlain_printf("client request: code %lx,  addr %p,  len %lu\n",
7110                      *(arg + 0), (void *)*(arg + 1), *(arg + 2));   7110                      *(arg + 0), (void *)*(arg + 1), *(arg + 2));
7111     } else {   7111     } else {
7112     7112  
7113     }   7113     }
7114     tmp___11 = __builtin_expect((long )(! (! vgPlain_tdict.tool_handle_client_request)),   7114     tmp___11 = __builtin_expect((long )(! (! vgPlain_tdict.tool_handle_client_request)),
7115                                 1L);   7115                                 1L);
7116     if (tmp___11) {   7116     if (tmp___11) {
7117     7117  
7118     } else {   7118     } else {
7119       vgPlain_assert_fail((Bool )0,   7119       vgPlain_assert_fail((Bool )0,
7120                           (Char const   *)"VG_(tdict).tool_handle_client_request",   7120                           (Char const   *)"VG_(tdict).tool_handle_client_request",
7121                           (Char const   *)"m_scheduler/scheduler.c", 1712,   7121                           (Char const   *)"m_scheduler/scheduler.c", 1712,
7122                           (Char const   *)"do_client_request",   7122                           (Char const   *)"do_client_request",
7123                           "you forgot to set VgToolInterface function \'tool_handle_client_request\'");   7123                           "you forgot to set VgToolInterface function \'tool_handle_client_request\'");
7124     }   7124     }
7125     tmp___12 = (*(vgPlain_tdict.tool_handle_client_request))(tid, arg, & ret);   7125     tmp___12 = (*(vgPlain_tdict.tool_handle_client_request))(tid, arg, & ret);
7126     if (tmp___12) {   7126     if (tmp___12) {
7127       while (1) {   7127       while (1) {
7128         vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )ret;   7128         vgPlain_threads[tid].arch.vex.guest_EDX = (UInt )ret;
7129         while (1) {   7129         while (1) {
7130           if (vgPlain_tdict.track_post_reg_write) {   7130           if (vgPlain_tdict.track_post_reg_write) {
7131             (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,   7131             (*(vgPlain_tdict.track_post_reg_write))((CorePart )6, tid,
7132                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),   7132                                                     (PtrdiffT )((Int )((HWord )(& ((VexGuestArchState *)0)->guest_EDX))),
7133                                                     (SizeT )sizeof(UWord ));   7133                                                     (SizeT )sizeof(UWord ));
7134           } else {   7134           } else {
7135     7135  
7136           }   7136           }
7137           break;   7137           break;
7138         }   7138         }
7139         break;   7139         break;
7140       }   7140       }
7141     } else {   7141     } else {
7142     7142  
7143     }   7143     }
7144   } else   7144   } else
7145   if (! whined) {   7145   if (! whined) {
7146     if (vgPlain_clo_verbosity > 2) {   7146     if (vgPlain_clo_verbosity > 2) {
7147       c1 = (Char )((*(arg + 0) >> 24) & 255UL);   7147       c1 = (Char )((*(arg + 0) >> 24) & 255UL);
7148       c2 = (Char )((*(arg + 0) >> 16) & 255UL);   7148       c2 = (Char )((*(arg + 0) >> 16) & 255UL);
7149       if ((int )c1 == 0) {   7149       if ((int )c1 == 0) {
7150         c1 = (Char )'_';   7150         c1 = (Char )'_';
7151       } else {   7151       } else {
7152     7152  
7153       }   7153       }
7154       if ((int )c2 == 0) {   7154       if ((int )c2 == 0) {
7155         c2 = (Char )'_';   7155         c2 = (Char )'_';
7156       } else {   7156       } else {
7157     7157  
7158       }   7158       }
7159       vgPlain_message((VgMsgKind )1,   7159       vgPlain_message((VgMsgKind )1,
7160                       "Warning:\n  unhandled client request: 0x%lx (%c%c+0x%lx).  Perhaps\n  VG_(needs).client_requests should be set?\n",   7160                       "Warning:\n  unhandled client request: 0x%lx (%c%c+0x%lx).  Perhaps\n  VG_(needs).client_requests should be set?\n",
7161                       *(arg + 0), (int )c1, (int )c2, *(arg + 0) & 65535UL);   7161                       *(arg + 0), (int )c1, (int )c2, *(arg + 0) & 65535UL);
7162       whined = (Bool )1;   7162       whined = (Bool )1;
7163     } else {   7163     } else {
7164     7164  
7165     }   7165     }
7166   } else {   7166   } else {
7167     7167  
7168   }   7168   }
7169   break;   7169   break;
7170   }   7170   }
7171   return;   7171   return;
7172   va_list_casting_error_NORETURN:   7172   va_list_casting_error_NORETURN:
7173   vgPlain_umsg("Valgrind: fatal error - cannot continue: use of the deprecated\nclient requests VG_USERREQ__PRINTF or VG_USERREQ__PRINTF_BACKTRACE\non a platform where they cannot be supported.  Please use the\nequivalent _VALIST_BY_REF versions instead.\n\nThis is a binary-incompatible change in Valgrind\'s client request\nmechanism.  It is unfortunate, but difficult to avoid.  End-users\nare expected to almost never see this message.  The only case in\nwhich you might see this message is if your code uses the macros\nVALGRIND_PRINTF or VALGRIND_PRINTF_BACKTRACE.  If so, you will need\nto recompile such code, using the header files from this version of\nValgrind, and not any previous version.\n\nIf you see this mesage in any other circumstances, it is probably\na bug in Valgrind.  In this case, please file a bug report at\n\n   http://www.valgrind.org/support/bug_reports.html\n\nWill now abort.\n");   7173   vgPlain_umsg("Valgrind: fatal error - cannot continue: use of the deprecated\nclient requests VG_USERREQ__PRINTF or VG_USERREQ__PRINTF_BACKTRACE\non a platform where they cannot be supported.  Please use the\nequivalent _VALIST_BY_REF versions instead.\n\nThis is a binary-incompatible change in Valgrind\'s client request\nmechanism.  It is unfortunate, but difficult to avoid.  End-users\nare expected to almost never see this message.  The only case in\nwhich you might see this message is if your code uses the macros\nVALGRIND_PRINTF or VALGRIND_PRINTF_BACKTRACE.  If so, you will need\nto recompile such code, using the header files from this version of\nValgrind, and not any previous version.\n\nIf you see this mesage in any other circumstances, it is probably\na bug in Valgrind.  In this case, please file a bug report at\n\n   http://www.valgrind.org/support/bug_reports.html\n\nWill now abort.\n");
7174   tmp___14 = __builtin_expect(0L, 1L);   7174   tmp___14 = __builtin_expect(0L, 1L);
7175   if (tmp___14) {   7175   if (tmp___14) {
7176     7176  
7177   } else {   7177   } else {
7178     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   7178     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
7179                         (Char const   *)"m_scheduler/scheduler.c", 1758,   7179                         (Char const   *)"m_scheduler/scheduler.c", 1758,
7180                         (Char const   *)"do_client_request", "");   7180                         (Char const   *)"do_client_request", "");
7181   }   7181   }
7182   return;   7182   return;
7183 }   7183 }
7184 }   7184 }
7185 static void scheduler_sanity(ThreadId tid ) ;   7185 static void scheduler_sanity(ThreadId tid ) ;
7186 static UInt lasttime  =    (UInt )0;   7186 static UInt lasttime  =    (UInt )0;
7187 static void scheduler_sanity(ThreadId tid )   7187 static void scheduler_sanity(ThreadId tid )
7188 {   7188 {
7189   Bool bad ;   7189   Bool bad ;
7190   UInt now ;   7190   UInt now ;
7191   Int lwpid ;   7191   Int lwpid ;
7192   Int tmp ;   7192   Int tmp ;
7193   Bool tmp___0 ;   7193   Bool tmp___0 ;
7194   Int tmp___1 ;   7194   Int tmp___1 ;
7195     7195  
7196   {   7196   {
7197   bad = (Bool )0;   7197   bad = (Bool )0;
7198   tmp = vgPlain_gettid();   7198   tmp = vgPlain_gettid();
7199   lwpid = tmp;   7199   lwpid = tmp;
7200   tmp___0 = vgPlain_is_running_thread(tid);   7200   tmp___0 = vgPlain_is_running_thread(tid);
7201   if (tmp___0) {   7201   if (tmp___0) {
7202     7202  
7203   } else {   7203   } else {
7204     vgPlain_message((VgMsgKind )2,   7204     vgPlain_message((VgMsgKind )2,
7205                     "Thread %d is supposed to be running, but doesn\'t own the_BigLock (owned by %d)\n",   7205                     "Thread %d is supposed to be running, but doesn\'t own the_BigLock (owned by %d)\n",
7206                     tid, vgPlain_running_tid);   7206                     tid, vgPlain_running_tid);
7207     bad = (Bool )1;   7207     bad = (Bool )1;
7208   }   7208   }
7209   if (lwpid != vgPlain_threads[tid].os_state.lwpid) {   7209   if (lwpid != vgPlain_threads[tid].os_state.lwpid) {
7210     tmp___1 = vgPlain_gettid();   7210     tmp___1 = vgPlain_gettid();
7211     vgPlain_message((VgMsgKind )2,   7211     vgPlain_message((VgMsgKind )2,
7212                     "Thread %d supposed to be in LWP %d, but we\'re actually %d\n",   7212                     "Thread %d supposed to be in LWP %d, but we\'re actually %d\n",
7213                     tid, vgPlain_threads[tid].os_state.lwpid, tmp___1);   7213                     tid, vgPlain_threads[tid].os_state.lwpid, tmp___1);
7214     bad = (Bool )1;   7214     bad = (Bool )1;
7215   } else {   7215   } else {
7216     7216  
7217   }   7217   }
7218   if (lwpid != the_BigLock.owner_lwpid) {   7218   if (lwpid != the_BigLock.owner_lwpid) {
7219     vgPlain_message((VgMsgKind )2,   7219     vgPlain_message((VgMsgKind )2,
7220                     "Thread (LWPID) %d doesn\'t own the_BigLock\n", tid);   7220                     "Thread (LWPID) %d doesn\'t own the_BigLock\n", tid);
7221     bad = (Bool )1;   7221     bad = (Bool )1;
7222   } else {   7222   } else {
7223     7223  
7224   }   7224   }
7225   now = vgPlain_read_millisecond_timer();   7225   now = vgPlain_read_millisecond_timer();
7226   if (bad) {   7226   if (bad) {
7227     vgPlain_core_panic((Char *)"scheduler_sanity: failed");   7227     vgPlain_core_panic((Char *)"scheduler_sanity: failed");
7228   } else {   7228   } else {
7229     7229  
7230   }   7230   }
7231   return;   7231   return;
7232 }   7232 }
7233 }   7233 }
7234 void vgPlain_sanity_check_general(Bool force_expensive ) ;   7234 void vgPlain_sanity_check_general(Bool force_expensive ) ;
7235 static UInt next_slow_check_at  =    (UInt )1;   7235 static UInt next_slow_check_at  =    (UInt )1;
7236 void vgPlain_sanity_check_general(Bool force_expensive ) ;   7236 void vgPlain_sanity_check_general(Bool force_expensive ) ;
7237 static UInt slow_check_interval  =    (UInt )25;   7237 static UInt slow_check_interval  =    (UInt )25;
7238 void vgPlain_sanity_check_general(Bool force_expensive )   7238 void vgPlain_sanity_check_general(Bool force_expensive )
7239 {   7239 {
7240   ThreadId tid ;   7240   ThreadId tid ;
7241   long tmp ;   7241   long tmp ;
7242   Bool tmp___0 ;   7242   Bool tmp___0 ;
7243   int tmp___1 ;   7243   int tmp___1 ;
7244   long tmp___2 ;   7244   long tmp___2 ;
7245   long tmp___3 ;   7245   long tmp___3 ;
7246   Bool tmp___4 ;   7246   Bool tmp___4 ;
7247   int tmp___5 ;   7247   int tmp___5 ;
7248   long tmp___6 ;   7248   long tmp___6 ;
7249   SizeT remains ;   7249   SizeT remains ;
7250   VgStack *stack ;   7250   VgStack *stack ;
7251   ThreadState *tmp___7 ;   7251   ThreadState *tmp___7 ;
7252   SizeT limit ;   7252   SizeT limit ;
7253     7253  
7254   {   7254   {
7255   if (vgPlain_clo_sanity_level < 1) {   7255   if (vgPlain_clo_sanity_level < 1) {
7256     return;   7256     return;
7257   } else {   7257   } else {
7258     7258  
7259   }   7259   }
7260   sanity_fast_count ++;   7260   sanity_fast_count ++;
7261   if (vgPlain_needs.sanity_checks) {   7261   if (vgPlain_needs.sanity_checks) {
7262     tmp = __builtin_expect((long )(! (! vgPlain_tdict.tool_cheap_sanity_check)),   7262     tmp = __builtin_expect((long )(! (! vgPlain_tdict.tool_cheap_sanity_check)),
7263                            1L);   7263                            1L);
7264     if (tmp) {   7264     if (tmp) {
7265     7265  
7266     } else {   7266     } else {
7267       vgPlain_assert_fail((Bool )0,   7267       vgPlain_assert_fail((Bool )0,
7268                           (Char const   *)"VG_(tdict).tool_cheap_sanity_check",   7268                           (Char const   *)"VG_(tdict).tool_cheap_sanity_check",
7269                           (Char const   *)"m_scheduler/scheduler.c", 1834,   7269                           (Char const   *)"m_scheduler/scheduler.c", 1834,
7270                           (Char const   *)"vgPlain_sanity_check_general",   7270                           (Char const   *)"vgPlain_sanity_check_general",
7271                           "you forgot to set VgToolInterface function \'tool_cheap_sanity_check\'");   7271                           "you forgot to set VgToolInterface function \'tool_cheap_sanity_check\'");
7272     }   7272     }
7273     tmp___0 = (*(vgPlain_tdict.tool_cheap_sanity_check))();   7273     tmp___0 = (*(vgPlain_tdict.tool_cheap_sanity_check))();
7274     if (tmp___0) {   7274     if (tmp___0) {
7275       tmp___1 = 1;   7275       tmp___1 = 1;
7276     } else {   7276     } else {
7277       tmp___1 = 0;   7277       tmp___1 = 0;
7278     }   7278     }
7279     tmp___2 = __builtin_expect((long )tmp___1, 1L);   7279     tmp___2 = __builtin_expect((long )tmp___1, 1L);
7280     if (tmp___2) {   7280     if (tmp___2) {
7281     7281  
7282     } else {   7282     } else {
7283       vgPlain_assert_fail((Bool )1,   7283       vgPlain_assert_fail((Bool )1,
7284                           (Char const   *)"VG_TDICT_CALL(tool_cheap_sanity_check)",   7284                           (Char const   *)"VG_TDICT_CALL(tool_cheap_sanity_check)",
7285                           (Char const   *)"m_scheduler/scheduler.c", 1834,   7285                           (Char const   *)"m_scheduler/scheduler.c", 1834,
7286                           (Char const   *)"vgPlain_sanity_check_general", "");   7286                           (Char const   *)"vgPlain_sanity_check_general", "");
7287     }   7287     }
7288   } else {   7288   } else {
7289     7289  
7290   }   7290   }
7291   if (force_expensive) {   7291   if (force_expensive) {
7292     goto _L;   7292     goto _L;
7293   } else   7293   } else
7294   if (vgPlain_clo_sanity_level > 1) {   7294   if (vgPlain_clo_sanity_level > 1) {
7295     goto _L;   7295     goto _L;
7296   } else   7296   } else
7297   if (vgPlain_clo_sanity_level == 1) {   7297   if (vgPlain_clo_sanity_level == 1) {
7298     if (sanity_fast_count == next_slow_check_at) {   7298     if (sanity_fast_count == next_slow_check_at) {
7299       _L: /* CIL Label */   7299       _L: /* CIL Label */
7300       next_slow_check_at = (sanity_fast_count - 1U) + slow_check_interval;   7300       next_slow_check_at = (sanity_fast_count - 1U) + slow_check_interval;
7301       slow_check_interval ++;   7301       slow_check_interval ++;
7302       sanity_slow_count ++;   7302       sanity_slow_count ++;
7303       if (vgPlain_needs.sanity_checks) {   7303       if (vgPlain_needs.sanity_checks) {
7304         tmp___3 = __builtin_expect((long )(! (! vgPlain_tdict.tool_expensive_sanity_check)),   7304         tmp___3 = __builtin_expect((long )(! (! vgPlain_tdict.tool_expensive_sanity_check)),
7305                                    1L);   7305                                    1L);
7306         if (tmp___3) {   7306         if (tmp___3) {
7307     7307  
7308         } else {   7308         } else {
7309           vgPlain_assert_fail((Bool )0,   7309           vgPlain_assert_fail((Bool )0,
7310                               (Char const   *)"VG_(tdict).tool_expensive_sanity_check",   7310                               (Char const   *)"VG_(tdict).tool_expensive_sanity_check",
7311                               (Char const   *)"m_scheduler/scheduler.c", 1854,   7311                               (Char const   *)"m_scheduler/scheduler.c", 1854,
7312                               (Char const   *)"vgPlain_sanity_check_general",   7312                               (Char const   *)"vgPlain_sanity_check_general",
7313                               "you forgot to set VgToolInterface function \'tool_expensive_sanity_check\'");   7313                               "you forgot to set VgToolInterface function \'tool_expensive_sanity_check\'");
7314         }   7314         }
7315         tmp___4 = (*(vgPlain_tdict.tool_expensive_sanity_check))();   7315         tmp___4 = (*(vgPlain_tdict.tool_expensive_sanity_check))();
7316         if (tmp___4) {   7316         if (tmp___4) {
7317           tmp___5 = 1;   7317           tmp___5 = 1;
7318         } else {   7318         } else {
7319           tmp___5 = 0;   7319           tmp___5 = 0;
7320         }   7320         }
7321         tmp___6 = __builtin_expect((long )tmp___5, 1L);   7321         tmp___6 = __builtin_expect((long )tmp___5, 1L);
7322         if (tmp___6) {   7322         if (tmp___6) {
7323     7323  
7324         } else {   7324         } else {
7325           vgPlain_assert_fail((Bool )1,   7325           vgPlain_assert_fail((Bool )1,
7326                               (Char const   *)"VG_TDICT_CALL(tool_expensive_sanity_check)",   7326                               (Char const   *)"VG_TDICT_CALL(tool_expensive_sanity_check)",
7327                               (Char const   *)"m_scheduler/scheduler.c", 1854,   7327                               (Char const   *)"m_scheduler/scheduler.c", 1854,
7328                               (Char const   *)"vgPlain_sanity_check_general", "");   7328                               (Char const   *)"vgPlain_sanity_check_general", "");
7329         }   7329         }
7330       } else {   7330       } else {
7331     7331  
7332       }   7332       }
7333       tid = (ThreadId )1;   7333       tid = (ThreadId )1;
7334       while (tid < 500U) {   7334       while (tid < 500U) {
7335         if ((unsigned int )vgPlain_threads[tid].status == 0U) {   7335         if ((unsigned int )vgPlain_threads[tid].status == 0U) {
7336           goto __Cont;   7336           goto __Cont;
7337         } else   7337         } else
7338         if ((unsigned int )vgPlain_threads[tid].status == 5U) {   7338         if ((unsigned int )vgPlain_threads[tid].status == 5U) {
7339           goto __Cont;   7339           goto __Cont;
7340         } else {   7340         } else {
7341     7341  
7342         }   7342         }
7343         tmp___7 = vgPlain_get_ThreadState(tid);   7343         tmp___7 = vgPlain_get_ThreadState(tid);
7344         stack = (VgStack *)tmp___7->os_state.valgrind_stack_base;   7344         stack = (VgStack *)tmp___7->os_state.valgrind_stack_base;
7345         limit = (SizeT )4096;   7345         limit = (SizeT )4096;
7346         remains = vgPlain_am_get_VgStack_unused_szB(stack, limit);   7346         remains = vgPlain_am_get_VgStack_unused_szB(stack, limit);
7347         if (remains < limit) {   7347         if (remains < limit) {
7348           vgPlain_message((VgMsgKind )2,   7348           vgPlain_message((VgMsgKind )2,
7349                           "WARNING: Thread %d is within %ld bytes of running out of stack!\n",   7349                           "WARNING: Thread %d is within %ld bytes of running out of stack!\n",
7350                           tid, remains);   7350                           tid, remains);
7351         } else {   7351         } else {
7352     7352  
7353         }   7353         }
7354         __Cont: /* CIL Label */   7354         __Cont: /* CIL Label */
7355         tid ++;   7355         tid ++;
7356       }   7356       }
7357     } else {   7357     } else {
7358     7358  
7359     }   7359     }
7360   } else {   7360   } else {
7361     7361  
7362   }   7362   }
7363   if (vgPlain_clo_sanity_level > 1) {   7363   if (vgPlain_clo_sanity_level > 1) {
7364     vgPlain_sanity_check_malloc_all();   7364     vgPlain_sanity_check_malloc_all();
7365   } else {   7365   } else {
7366     7366  
7367   }   7367   }
7368   return;   7368   return;
7369 }   7369 }
7370 }   7370 }